Pertanyaan R tidak dapat diselesaikan - kesalahan Android


Saya baru saja mengunduh dan menginstal SDK Android baru. Saya ingin membuat aplikasi sederhana untuk mengujinya.

Wizard membuat kode ini:

package eu.mauriziopz.gps;

import android.app.Activity;
import android.os.Bundle;

public class ggps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

tapi Gerhana memberi saya kesalahan

R tidak bisa diselesaikan

on line

setContentView(R.layout.main);

Mengapa?

PS: Saya punya file XML bernama main.xml dibawah res/layout/.


987


asal


Jawaban:


Setelah melacak masalah ini juga, saya menemukan catatan ini di dokumentasi Android:

http://source.android.com/source/using-eclipse.html

* Catatan: Eclipse terkadang suka menambahkan pernyataan "impor android.R" di   atas file Anda yang menggunakan sumber daya,   terutama ketika Anda bertanya kepada Eclipse   mengurutkan atau mengatur impor. Ini   akan menyebabkan Anda membuat untuk istirahat. Melihat   untuk impor yang salah ini   pernyataan dan hapus. *

Saat melalui tutorial sampel Android, saya sering menggunakan Ctrl + Bergeser + HAI perintah untuk "Mengatur Impor" dan menghasilkan laporan impor yang hilang. Kadang-kadang ini akan menghasilkan pernyataan impor salah yang akan menyembunyikan R.java kelas yang dibuat secara otomatis saat Anda membuat.


817



Setiap kali saya memiliki masalah dengan R tidak dihasilkan, atau bahkan menghilang, ini disebabkan oleh beberapa masalah dalam file layout XML yang mencegah aplikasi tersebut dibangun.


377



Kapanpun kamu mendapatkannya

R tidak bisa diselesaikan

kemudian periksa /res direktori dan harus ada beberapa file yang memiliki beberapa kesalahan di dalamnya dan itu mencegah aplikasi dibangun. Sebagai contoh, ini mungkin file layout atau mungkin karena beberapa sumber daya yang hilang, tetapi Anda sudah mendefinisikannya dalam file XML.

Jika Anda memiliki gambar tambahan, bahkan tidak terpakai (!) Atau tidak direferensikan (!) Dalam folder seperti res / drawables-mdpi yang tidak sesuai dengan konvensi penamaan file (mungkin hanya berisi [a-z0-9_.]), Kelas R.java mungkin tidak menghasilkan, menyebabkan rantai peristiwa semua posting lain yang dimaksud. Semoga itu membantu!


192



proyek saya telah menyertakan r.java.di permulaan, R.layout.main berfungsi dengan baik. Tapi, setelah menambahkan beberapa kode, itu tidak berhasil, dan kesalahannya adalah R.layout.main tidak dapat diselesaikan. Apa masalahnya ?

Lihatlah impor Anda. Kemungkinannya adalah bahwa garis:

import android.R;

akan disana. Jika itu masalahnya, hapus, sehingga proyek Anda akan menyelesaikan R tidak dengan kelas Sumber Daya Android default, tetapi dengan yang dihasilkan secara otomatis dari folder / res / Anda.


128



Dan hal lain yang dapat menyebabkan masalah ini:

Saya menginstal ADT baru (v. 22). Itu berhenti menciptakan gen folder yang termasuk R.java. Solusinya adalah menginstal Android SDK Build Tools baru dari Android SDK Manager.

Solusi ditemukan sini


94



R.java adalah file yang plugin Android Eclipse buat saat membangun aplikasi Anda. R.java dibuat di bawah "gen" direktori. File ini dihasilkan dari informasi dalam "res" direktori. Jika Anda menjalankan pilih "Proyek" -> "Bersihkan ..." pada Eclipse menu, itu akan menghapus dan kemudian regenerasi R.javamengajukan.

Masalah "R tidak dapat diselesaikan" terjadi ketika Anda mengubah Anda nama paket di AndroidManifest.xml mengajukan. Ini menggunakan Android Anda nama paket untuk membuat subdirektori di bawah direktori "gen" di mana itu menyimpan R.javamengajukan.

Eclipse mungkin memiliki masalah mengeksekusi bersih, karena itu membingungkan Dimana R.java file adalah ketika Anda mengubah paket Android nama. Anda dapat mengganti nama subdirektori di bawah gen untuk mencocokkan Anda nama paket baru, atau Anda dapat mengubah nama paket Anda kembali ke yang lama nama. Lakukan bersih dan kemudian ubah nama paket ke nama baru kamu ingin. Ini berfungsi paling baik jika Anda menghentikan Eclipse dari mencoba membangun saat Anda mengganti nama paket. Di bawah menu "Project" hapus centang opsi untuk "Membangun Secara Otomatis" dan juga saat Dialog "Bersihkan ..." menanyakan apakah seharusnya "Mulai membangun dengan segera" hapus centang pada kotak sehingga tidak mencoba untuk membangun saat Anda mengubah nama paket. Setelah Anda mengubah nama, Anda dapat mengaktifkan "Build Secara otomatis "kembali lagi.

Perhatikan bahwa jika Anda AndroidManifest.xml nama paket file tidak cocok nama paket Java Anda, Eclipse akan berakhir secara otomatis menambahkan "impor <nama paket Android Anda> .R;" baris di semua Anda .java file yang memiliki referensi ke R. Jika Anda mengubah Anda AndroidManifest.xml nama paket, terkadang Eclipse tidak memperbarui semua yang ditambahkan ini impor. Jika itu terjadi, gunakan Eclipse refactoring (ALT + Bergeser + R) untuk mengubah pernyataan impor di salah satu file Java Anda milikmu yang baru AndroidManifest.xml nama paket. Yang terbaik untuk melakukan ini saat Anda menonaktifkan "Bangun Secara Otomatis".


85



Apa yang dikatakan Will benar

R adalah kelas yang dihasilkan secara otomatis yang menyimpan konstanta yang digunakan untuk mengidentifikasi> sumber daya Anda. Jika Anda tidak memiliki file R.java (itu akan menjadi gen / eu.mauriziopz.gps / R.java di> Eclipse dengan SDK 1.5) Saya akan merekomendasikan menutup dan membuka kembali proyek Anda atau pergi ke> Proyek> Buat semua (dan pilih "Bangun Secara Otomatis" sementara di sana seperti yang direkomendasikan oleh> Josef). Jika itu tidak berhasil daripada mencoba membuat proyek baru, jika masalah itu diciptakan kembali dari> posting di sini lagi dan kami akan pergi ke lebih detail.

tetapi saya telah menemukan bahwa ada masalah lain yang menyebabkan yang pertama. Alat-alat di direktori SDK tidak memiliki izin untuk dieksekusi, jadi itu seperti tidak ada untuk Eclipse, sehingga tidak membangun R.javamengajukan.

Jadi memodifikasi izin dan memilih "Bangun Secara Otomatis" memecahkan masalah.


82



R adalah kelas yang dihasilkan secara otomatis yang menyimpan konstanta yang digunakan untuk mengidentifikasi sumber daya Anda. Jika Anda tidak memiliki file R.java (itu akan menjadi gen / eu.mauriziopz.gps / R.java di Eclipse dengan 1,5 SDK), saya akan merekomendasikan menutup dan membuka kembali proyek Anda atau pergi ke Project> Build all (dan pilih "Bangun Secara Otomatis" sementara di sana seperti yang direkomendasikan oleh Josef). Jika itu tidak berhasil daripada mencoba membuat proyek baru, jika masalah itu diciptakan kembali dari posting di sini lagi dan kami akan pergi ke lebih detail.


36



Tutup semua file, bersihkan proyek, mulai ulang Eclipse.


28