R tidak dapat diselesaikan - Android error
Aku hanya men-download dan menginstal baru Android SDK. Saya ingin membuat sebuah aplikasi sederhana untuk test drive.
Wizard menciptakan 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 Eclipse memberi saya kesalahan
R tidak dapat diselesaikan
on line
setContentView(R.layout.main);
Mengapa?
PS: saya punya sebuah file XML bernama main.xml
di bawah res/layout/
.
1054
106
Setelah melacak masalah ini juga, aku menemukan catatan ini di Android dokumentasi:
http://source.android.com/source/using-eclipse.html
Sementara akan melalui Android contoh tutorial ini, saya akan sering menggunakan Pilih + Shift + O perintah untuk "Mengatur Impor" dan menghasilkan hilang impor pernyataan. Kadang-kadang ini akan menghasilkan salah pernyataan impor yang akan menyembunyikan
R.java
kelas yang dibuat secara otomatis ketika anda membangun.Setiap kali saya punya masalah dengan R tidak pernah dihasilkan, atau bahkan menghilang, hal ini disebabkan karena beberapa masalah di file layout XML yang mencegah aplikasi dari yang sedang dibangun.
Setiap kali anda mendapatkan
kemudian periksa
/res
direktori dan harus ada beberapa file yang memiliki beberapa kesalahan di dalamnya dan yang mencegah aplikasi dari yang sedang dibangun. Misalnya, mungkin file layout atau mungkin karena beberapa sumber daya yang tidak ada, tapi anda sudah didefinisikan pada file XML.Jika anda memiliki tambahan apapun, bahkan yang tidak terpakai (!) atau memetiknya (!) gambar dalam folder seperti res/drawables-mdpi yang tidak sesuai dengan konvensi penamaan file (mungkin hanya berisi [a-z0-9_.]), yang R.java kelas mungkin tidak menghasilkan, menyebabkan rantai peristiwa semua posting lain disebut. Semoga membantu!
Melihat anda impor. Kemungkinannya adalah bahwa garis:
akan ada. Jika itu's kasus, menghapus, sehingga proyek anda akan mengatasi R tidak dengan default Android sumber Daya kelas, tetapi dengan satu auto-dihasilkan dari anda /res/ folder.
Dan hal lain yang dapat menyebabkan masalah ini:
Saya menginstal baru ADT (ay 22). Berhenti membuat
gen
folder yang mencakupR.java
. Solusinya adalah untuk juga menginstal Android SDK Membangun alat-Alat dari Android SDK Manager.Solusi yang ditemukan di sini
R.java
adalah file yang Android Eclipse plugin menciptakan sambil membangun aplikasi anda.R.java
ini dibuat di bawah "gen" directory. File ini dihasilkan dari informasi yang di "res" directory. Jika anda menjalankan pilih "Proyek" -> "Bersih..." pada Eclipse menu, itu akan menghapus dan kemudian kembaliR.java
file.Masalah "R tidak dapat diselesaikan" terjadi ketika anda mengubah anda nama paket dalam
AndroidManifest.xml
file. Menggunakan Android anda nama paket untuk membuat subdirektori di bawah "gen" direktori mana tokoR.java
file.Eclipse mungkin memiliki masalah mengeksekusi bersih, karena bingung tentang di mana
R.java
file adalah ketika anda telah mengubah Android paket nama. Anda dapat mengubah nama subdirektori di bawahgen
untuk mencocokkan anda baru nama paket, atau anda dapat mengubah nama paket kembali ke yang lama nama. Bersih-bersih dan kemudian mengubah nama paket untuk nama baru anda ingin. Ini bekerja baik jika anda berhenti Gerhana dari mencoba untuk membangun saat anda mengubah nama paket. Di bawah "Proyek" menu hapus centang opsi untuk "Membangun secara Otomatis" dan juga ketika "Bersih..." dialog meminta jika harus "Mulai membangun segera" hapus centang pada kotak sehingga tidak't mencoba untuk membangun saat anda mengubah nama paket. Setelah anda telah mengubah nama anda dapat mengubah "Membangun Secara otomatis" kembali lagi.Perhatikan bahwa jika anda
AndroidManifest.xml
file nama paket tidak sesuai anda Jawa nama paket, Gerhana akan berakhir secara otomatis menambah "impor <Android anda nama paket>.R;," line di semua.jawa
file yang punya referensi untuk R. Jika anda mengubah andaAndroidManifest.xml
nama paket, kadang-kadang Gerhana tidak memperbarui semua ini menambahkan impor. Jika itu terjadi, gunakan Eclipse refactoring (ALT + Shift + R) untuk mengubah pernyataan impor di salah satu file Java untuk anda baruAndroidManifest.xml
nama paket. Cara terbaik adalah untuk melakukan ini saat anda telah dinonaktifkan "Membangun secara Otomatis".Apa yang Akan dikatakan benar
tapi aku've menemukan bahwa ada masalah lain yang menyebabkan pertama. Alat-alat dalam direktori SDK didn't memiliki izin untuk dieksekusi, jadi itu seperti tidak't ada untuk Eclipse, sehingga tidak't membangun
R.java
file.Jadi memodifikasi izin dan memilih "Membangun secara Otomatis" memecahkan masalah.
R adalah aplikasi yang secara otomatis dihasilkan kelas yang memegang konstanta yang digunakan untuk mengidentifikasi sumber daya anda. Jika anda don't memiliki R.java file (akan gen/eu.mauriziopz.gps/R.java di Eclipse dengan 1.5 SDK) saya akan merekomendasikan penutupan dan pembukaan kembali proyek anda atau pergi ke Proyek > Membangun semua (dan memilih "Membangun secara Otomatis" sementara ada seperti yang direkomendasikan oleh Josef). Jika itu doesn't bekerja daripada mencoba membuat sebuah proyek baru, jika masalah ini diciptakan dari posting di sini lagi dan kita'akan pergi ke detail lebih lanjut.
Tutup semua file, proyek bersih, restart Eclipse.
Itu adalah senilai check-in
AndroidManifest.xml
. Atributpaket
memiliki nilai yang benar.Yaitu:
Bersama dengan saran yang besar dalam jawaban sebelumnya, pastikan Android anda target yang ditetapkan:
Edit: Satu tahun kemudian saya menemukan penyebab lain. Aku punya .jpg gambar di drawable folder dengan nama yang sama .gambar png. Referensi gambar ini dalam kode saya harus bingung program dan memberi "R tidak dapat diselesaikan" kesalahan.
Kesalahan ini juga dapat disebabkan oleh penambahan suatu kegiatan untuk namespace yang berbeda untuk root namespace untuk paket anda.
Misalnya, jika
com.contoh.myapp
adalah akar namespace untuk paket anda, anda kemudian dapat menambahkan aktivitas kecom.contoh.myapp.kegiatan
namespace.Ini akan menghasilkan "R tidak dapat diselesaikan" kesalahan.
Untuk memperbaiki mengimpor R di default namespace dalam aktivitas anda harus:
Pastikan anda menginstal Android membangun alat bentuk sdk manager
proyek klik kanan properties-> Jawa BuildPath pilih Perpustakaan dan menambah android-support.jar ikuti langkah-langkah ini.
Pergi ke Proyek->Sifat->Java Build Path dari pilih Order dan ekspor tab. Set android-dukungan .jar perpustakaan diperiksa dan naik ke atas daftar. Dan membersihkan dan membangun kembali..It bekerja untuk sebagian besar dari kasus-kasus
Aku punya masalah ini untuk kesejuta kalinya dan menyadari apa yang menyebabkan hal itu: saya membuat sebuah file XML dengan huruf besar huruf dalam namanya. Semua nama file XML di
/res
harus sesuai[a-z0-9\\._]
.Solusi yang paling sederhana - kadang-Kadang anda hanya perlu untuk menyimpan XML file yang sedang anda kerjakan untuk mendapatkan autogenerator untuk menendang.
Simpan file (mis. main.xml) kemudian hapus R.java file dan melihat jika diregenerasi R.java mengatasi R menyelesaikan masalah.
R
yang dihasilkan kelas. Jika anda menggunakan Android Development Tools (ADT) itu dihasilkan setiap kali proyek yang dibangun. Anda mungkin memiliki 'Membangun secara Otomatis' dimatikan.Periksa nama file XML. Pastikan bahwa mereka're semua dalam huruf kecil.
Juga pastikan bahwa setiap gambar nama sumber daya juga dalam KASUS yang lebih RENDAH. Aku punya huruf di nama saya file jpg, dan itu menyebabkan R yang belum terselesaikan kesalahan di proyek saya.
Anda mungkin perlu untuk update/install SDK tools. Peluncuran Android SDK Manager lagi dan menginstal item baru: Android SDK Build-tools.satu persatu menghapus,memperbaiki mana yang bekerja untuk anda.
Kesalahan ini dipotong pada saya x64 Linux Mint instalasi. Ternyata hasilnya adalah kegagalan dalam
ADB
biner, karenaia32-libs
paket tidak diinstal. Hanya dengan menjalankanapt-get install ia32-libs
dan peluncuran kembali Eclipse tetap kesalahan.Jika anda x64 distro tidak memiliki ia32-libs, anda'll harus pergi Multiarch.
Cek #4 dan #5 di posting ini: http://crunchbang.org/forums/viewtopic.php?pid=277883#p277883
Semoga ini bisa membantu seseorang.
Anda mungkin perlu memperbarui SDK tools. Peluncuran Android SDK Manager lagi dan menginstal item baru: Android SDK Build-tools.