R tidak dapat diselesaikan - Kesalahan Android

1072

Saya baru saja mengunduh dan menginstal Android SDK yang baru. Saya ingin membuat aplikasi sederhana untuk menguji drive itu.

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 Eclipse memberiku kesalahan

R tidak bisa diselesaikan

on line

setContentView(R.layout.main);

Mengapa?

PS: Saya punya file XML dengan nama di main.xmlbawah res/layout/.

Maurizio Pozzobon
sumber
Bagi mereka yang masih mengalami beberapa masalah dengan gerhana tidak dapat memperbarui / menghasilkan R.java. Solusi yang mungkin adalah dengan membuat xml dummy dan cukup hapus xml itu. Dalam kasus saya ini solusinya
denil
Jujur, ini terdengar sangat bodoh (dan memang begitu), tetapi memodifikasi AndroidManifest.xml, lalu membatalkan pengeditan itu, kemudian menyimpan file tersebut bekerja untuk saya. Jika saya membersihkan proyek setelah itu, itu rusak lagi. Dan selama ini saya pikir Xcode adalah satu-satunya IDE yang memiliki kesalahan misterius semacam ini.
iwasrobbed
3
Apakah Anda mencoba mengklik kanan pada proyek -> Alat Android -> Perbaiki Pengaturan Proyek?
Sergei
6
Silakan periksa file tata letak XMl Anda, jika ada kesalahan dalam xml Anda tidak dapat menghasilkan R.java, dan kesalahan muncul setelah bulid dan bersihkan juga.
swiftBoy
1
Hanya sebuah tip: ketika saya beralih IDE dari Eclipse ke Android Studio ini berhenti terjadi pada saya.
mata

Jawaban:

840

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 "import android.R" di bagian atas file Anda yang menggunakan sumber daya, terutama ketika Anda meminta Eclipse untuk mengurutkan atau mengelola impor. Hal ini akan menyebabkan Anda membuat untuk istirahat. Carilah pernyataan impor yang salah ini dan hapuslah. *

Saat mempelajari tutorial contoh Android, saya sering menggunakan perintah Ctrl+ Shift+ Ountuk "Mengatur Impor" dan menghasilkan pernyataan impor yang tidak ada. Terkadang ini akan menghasilkan pernyataan impor yang salah yang akan menyembunyikan R.javakelas yang dihasilkan secara otomatis saat Anda membangun.

Michael Levy
sumber
32
Ini juga terjadi, tetapi file tata letak yang rusak juga dapat menyebabkannya.
GHz
113
Bug klasik ini telah ada di Eclipse selama YEARS dan tidak pernah diperbaiki. Ribuan orang menghadapi masalah yang sama.
Carol
52
Pengembang Eclipse, tolong hapus $ $% & "$ & / bug! Pengembang Google ini, tolong beri saya $ & $"% & suite Android yang mirip dengan Xcode untuk iPhone!
Abramodj
18
@ 2-Stroker: Ini adalah bug. Itu terjadi pada saya ketika saya membuat proyek andorid cabang baru melalui WIZARD gerhana dan mengeluh tentang 'R tidak dapat diselesaikan'. Saya harus mengomentari garis setContentView & getMenuInflater dan kemudian eclipse menghasilkan R.java setelah itu saya bisa menghapus komentar setContentView & getMenuInflator. Abramodj benar, lingkungan memiliki masalah serius jika contoh 'hello world' Anda tidak dapat dikompilasi. Perbaiki google!
CF_Maintainer
5
Bagaimana Google tidak memberikan dana eclipse.org untuk mendapatkan item seperti ini diperbaiki?
Cris
391

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

Luc
sumber
21
+1 untuk ini. Saya memiliki file styles.xml yang lebih lama dengan parent = "android: WindowTitleBackground" dan itu merusak bangunan saya dan mencegah apa pun yang dihasilkan menjadi "gen". Kesalahan sebenarnya tidak dilaporkan kecuali di jendela Konsol saat saya pertama kali membuka proyek.
Scott Persinger
12
tepatnya, jika Anda menyalin tata letak dari proyek lain, dan mendapatkan ini, cari gambar yang hilang - yang akan segera memperbaikinya!
Gabor
4
Saya kira saya memiliki masalah yang sama, apakah ada cara untuk mengetahui penyihir salah satu tata letak?
Sergey Kucher
3
Ya, saya kehilangan file yang dapat digambar dan itu mencegah file R dari bahkan dihasilkan. Yang aneh adalah bahwa saya memiliki android:icon="@drawable/XXX"deklarasi di <item>dalam sumber daya menu, tetapi tidak ada tanda coretan merah bahwa sumber daya yang dapat ditarik XXX tidak ditemukan. Dalam kasus lain, "@drawable/YYY" itu ditandai ketika YYY tidak ditemukan, tapi tidak dalam kasus ini. Untuk beberapa alasan.
taylor
5
Ya, pemecahan yang bagus. Ketika seseorang mendapatkan kesalahan ini .. berkali-kali semua file tata letak ditandai memiliki kesalahan .. Ini karena mereka semua mencari R. Namun, salah satu dari mereka, kemungkinan memiliki kesalahan yang tidak berhubungan yang membatalkan pembangunan. Dalam kasus saya, drawable hilang.
Todd Painton
201

Kapanpun Anda dapatkan

R tidak bisa diselesaikan

kemudian periksa /resdirektori dan harus ada beberapa file yang memiliki beberapa kesalahan di dalamnya dan itu mencegah aplikasi dari dibangun. Misalnya, mungkin file tata letak 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 mematuhi konvensi penamaan file (mungkin hanya berisi [a-z0-9_.]), Kelas R.java mungkin tidak menghasilkan, menyebabkan rantai kejadian semua posting lainnya disebut. Semoga ini bisa membantu!

Kailash
sumber
Saya punya masalah dengan sampel ApiDemos. Beberapa sumber daya hilang dalam file strings.xml. Kesalahan XML tercantum di konsol Eclipse.
lemotdit
Terima kasih! ini adalah masalah saya, saya memiliki tata letak yang salah tetapi tidak ada pesan tentang itu.
29
Bagaimana Anda bisa memeriksa kesalahan? Saya tidak mendapatkan apa-apa di konsol saya ketika membangun / berlari
Vincent
4
Bagaimana cara mengetahui file xml WHICH yang menyebabkan kesalahan? Eclipse tidak menandai mereka!
Yar
1
Saya punya 2 gambar dengan nama yang sama di folder hdpi (1 dengan png dan 1 dengan format jpg) menghapus 1 dari mereka menyelesaikan masalah
Haseeb Jadoon
134

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

Lihatlah impor Anda. Kemungkinannya adalah garis:

import android.R;

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

Dimitar Dimitrov
sumber
5
Terima kasih @ Dimitar, itu memperbaiki masalah saya! Eclipse dan fitur auto-import tampaknya membuat saya menambahkan baris impor itu secara otomatis.
Steven
7
Saya juga memiliki masalah serupa ketika saya memberi nama tata letak menggunakan huruf kapital
Travis
Ini adalah salah satu dari 5 alasan utama orang mendapat "R not found". Saya telah menyusun halaman masalah / solusi dengan gambar yang menunjukkan 5 utama pada tautan di bawah. Sangat berharap daftar ini membantu orang karena ini adalah masalah umum. spragucm.wordpress.com/2014/05/13/…
Chris Sprague
setelah menghapus R, di beberapa tempat R digunakan sebagai kelas & memberi kesalahan sekarang, Bagaimana mengatasinya?
Narendra Jaggi
96

Dan satu hal lagi yang dapat menyebabkan masalah ini:

Saya menginstal ADT baru (ayat 22). Itu berhenti membuat genfolder yang termasuk R.java. Solusinya adalah juga menginstal Android SDK Build Tools baru dari Android SDK Manager.

Solusi ditemukan di sini

Michał K
sumber
Saya sendiri juga. Dan ketika saya memilih manajer SDK, lihat dan lihat, alat-alat build muncul secara otomatis untuk diperiksa dengan catatan bahwa itu tidak diinstal! Apa yang memberi ???
David di HotspotOffice
Saya memiliki masalah yang sama. Saya senang Anda membagikan ini. Saya melihat kesalahan dari kode saya sendiri dua hari. Saya sangat diappointed ke Google, karena pesan kesalahan ini sangat sulit untuk dipecahkan, tetapi disebabkan oleh kesalahan sendiri, walaupun alat tidak melaporkan dengan benar apa penyebabnya. Saya telah melakukan perubahan waktu yang sama pada proyek saya, jadi saya pikir itu adalah kesalahan saya lagi.
Reijo Korhonen
5
Bekerja untuk saya, terima kasih! Itu hanya memperkuat mantra saya: "tidak pernah memperbarui apa pun saat berkembang".
Rodrigo Dias
saya berkeliaran mencari jawaban tetapi tidak ada yang berhasil untuk saya. Saya pikir itu adalah masalah gerhana atau SDK. jadi seperti yang Anda katakan, saya hanya menghapus bundel gerhana prev dan instal ulang. dan kemudian itu bekerja. jawaban Anda terbantu
pemula
Ini adalah masalah dalam kasus saya! Terbuang suatu hari mencoba untuk memperbaiki kesalahan R, menambah / menghapus referensi, dan mencoba opsi lain. Milik saya adalah pengaturan baru ADT yang baru, dan pembuatan proyek android baru, dan masih mendapatkan kesalahan. Ternyata akhirnya, saya harus menginstal semua pembaruan yang tersedia untuk Android SDK Tools, Android SDK Platform Tools dan SDK Build Tools: p
Saurabh Kumar
87

R.javaadalah file yang dibuat oleh plugin Android Eclipse saat membangun aplikasi Anda. R.javadibuat di bawah direktori "gen". File ini dihasilkan dari informasi di direktori "res". Jika Anda menjalankan pilih "Project" -> "Clean ..." pada menu Eclipse, itu akan menghapus dan kemudian membuat ulang R.javafile.

Masalah "R tidak dapat diselesaikan" terjadi ketika Anda mengubah nama paket Anda di AndroidManifest.xmlfile. Ini menggunakan nama paket Android Anda untuk membuat subdirektori di bawah direktori "gen" tempat ia menyimpan R.javafile.

Eclipse mungkin memiliki masalah menjalankan pembersihan, karena bingung tentang di mana R.javafile itu ketika Anda telah mengubah nama paket Android. Anda dapat mengganti nama subdirektori di bawah genuntuk mencocokkan nama paket baru Anda, atau Anda dapat mengubah nama paket Anda kembali ke nama lama. Lakukan pembersihan lalu ubah nama paket menjadi nama baru yang Anda inginkan. Ini berfungsi baik jika Anda menghentikan Eclipse dari mencoba membangun ketika Anda mengubah nama paket. Di bawah menu "Project" hapus centang opsi untuk "Build Automatically" dan juga ketika dialog "Clean ..." bertanya apakah itu harus "Mulai build segera" hapus centang kotak sehingga tidak mencoba membangun ketika Anda mengubah nama paket. Setelah Anda mengubah nama, Anda dapat menghidupkan kembali "Build Automatically".

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

pengguna286516
sumber
21
Ini terlihat seperti potongan dan tempel tanpa referensi
Casebash
1
Beberapa Salin / Tempel file dan nama refactoring mengarah ke masalah yang sama, meskipun semua nama file dan kontennya ok. Membersihkan proyek, menghapus R.java secara manual dan semua header impor, lalu membangun kembali header impor ini (masih dengan CTRL + SHIFT + O) bekerja dengan baik.
hornetbzz
Ini berhasil untuk saya. Saya telah mengubah nama paket dalam manifes. Saya harus menggunakan ctrl-shift-O di kelas yang mereferensikan nilai-nilai kelas R yang dihasilkan untuk menambahkan impor yang benar.
Chuck Krutsinger
Ini memperbaikinya untuk saya. Juga telah melihat masalah impor terjadi di masa lalu, tetapi kali ini masalahnya adalah nama paket di manifes tidak cocok dengan nama paket di folder src.
Rentang Jim
Saya memiliki dua kegiatan dalam aplikasi saya. Yang satu memiliki nama paket yang berbeda dengan yang dibangkitkan oleh R. Saya harus mengimpor R secara manual menggunakan sesuatu sepertiimport com.example.main.package.name.R;
Oliver Moran
85

Apa yang dikatakan Will benar

R adalah kelas yang dibuat secara otomatis yang memegang 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 memilih "Bangun Secara Otomatis" sementara di sana seperti yang direkomendasikan oleh> Josef). Jika itu tidak berhasil daripada mencoba membuat proyek baru, jika masalahnya diciptakan kembali dari> posting di sini lagi dan kami akan membahas lebih detail.

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

Jadi memodifikasi izin dan memilih "Bangun Otomatis" menyelesaikan masalah.

MaurizioPz
sumber
@ Jignesh - cd $ANDROID_SDK_ROOT/build-tools/<version>. Kemudian chmod a+xpada file seperti aapt, aidl, dexdump, dx, dll ANDROID_SDK_ROOTharus set di lingkungan Anda, dan itu akan mengarah ke instalasi SDK Anda. Sebagai contoh /opt/android-sdk,. Sangat penting untuk mengatur keduanya ANDROID_SDK_ROOTdan ANDROID_NDK_ROOTkarena alat Android menggunakannya secara internal. Lihat Direkomendasikan Direktori NDK? pada daftar pengguna NDK.
jww
@Lewis .. Saya sudah memilih "Build Automatically" tetapi kesalahannya masih ada.
d_unknown
39

R adalah kelas yang dibuat secara otomatis yang memegang 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 memilih "Build Automatically" saat ada seperti yang direkomendasikan oleh Josef) Jika itu tidak berhasil daripada mencoba membuat proyek baru, jika masalahnya diciptakan kembali daripada memposting di sini lagi dan kami akan membahas lebih detail.

Akan
sumber
8
Ini bekerja untuk saya, tetapi saya harus "Project -> Clean ..." terlebih dahulu.
Matt Connolly
27

Tutup semua file, bersihkan proyek, mulai ulang Eclipse.

sharika
sumber
23
+1 Namun terkadang diperlukan 3 gerhana restart dan 7 pembersihan proyek di antaranya. Teruslah mencoba ;-) #rant
Matthias Bauch
3
Campurkan dengan menyentuh (edit + simpan) file .xml (strings.xml ...).
Ali Shakiba
24

Perlu check-in AndroidManifest.xml. Atribut packagememiliki nilai yang benar.

Itu adalah:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="your.correct.package.name"
   ...

Setelah Anda mengubahnya, R.javaakan dihasilkan kembali.

tujuh
sumber
Nama paket asli saya adalah com.xxxxxdroid.router. Saya membuat versi baru dari com app saya .xxxxxdroid2.router. Setelah saya melakukan ini, saya harus memperbarui nama paket di AndroidManifest.xml, tetapi hanya setelah saya mulai menyalin dan menempel kelas lama. Terima kasih untuk penunjuknya!
Eugene van der Merwe
ini memperbaiki masalah saya, saya sedang bekerja dalam file xml, senang saya ingat yang mana, saya punya banyak dari mereka ... terima kasih ...
GHz
19

Kesalahan ini juga bisa disebabkan oleh menambahkan aktivitas ke namespace yang berbeda dengan root namespace untuk paket Anda.

Misalnya, jika com.example.myappadalah namespace root untuk paket Anda, Anda kemudian dapat menambahkan aktivitas ke com.example.myapp.activitiesnamespace.

Ini akan menghasilkan kesalahan "R tidak dapat diselesaikan".

Untuk memperbaiki impor, R di namespace default di aktivitas Anda harus:

import com.example.myapp.R;
Rob
sumber
Ini membantu saya, saya telah memindahkan kegiatan saya ke dalam paket di bawah root, menambahkan paket root sebagai impor (import com.example.myapp.R;) menyelesaikan masalah.
eageranalyst
19

Bersamaan dengan saran hebat di jawaban sebelumnya, pastikan target Android Anda ditetapkan:

  1. Klik kanan pada proyek Anda
  2. Pilih Properti
  3. Pilih Android di menu sebelah kiri
  4. Centang kotak di sebelah Target Bangun Proyek yang sesuai.
  5. Klik Terapkan dan OK

Sunting: Setahun kemudian saya menemukan penyebab lain. Saya memiliki gambar .jpg di folder yang dapat digambar dengan nama yang sama dengan gambar .png. Merujuk gambar ini dalam kode saya pasti membingungkan program dan itu memberi kesalahan "R tidak dapat diselesaikan".

satyrFrost
sumber
17

Pastikan Anda menginstal manajer membangun Android bentuk sdk manajer

memproyeksikan properti klik kanan-> Java BuildPath pilih Library dan tambahkan android-support.jar ikuti langkah ini.

Pergi ke Project-> Properties-> Java Build Path daripada pilih Order and export tab. Set android-support .jar library dicentang dan naikkan ke atas daftar. Dan bersihkan dan bangun kembali .. Ini berfungsi untuk sebagian besar kasus

masukkan deskripsi gambar di sini

Sunil Kumar
sumber
15

Saya baru saja mengalami masalah ini untuk yang kesekian kalinya dan menyadari apa yang menyebabkannya: Saya membuat file XML dengan huruf besar dalam namanya. Semua nama file XML Anda /resharus cocok [a-z0-9\\._].

pengguna132014
sumber
juga, saya baru saja memperhatikan stack overflow mengharuskan kita untuk melarikan diri semua backslash.
14

Solusi paling sederhana - Terkadang Anda hanya perlu menyimpan file XML yang sedang Anda kerjakan untuk mendapatkan autogenerator untuk memulai.

Simpan file tersebut (mis. Main.xml) kemudian hapus file R.java dan lihat apakah R.java yang dibuat ulang menyelesaikan masalah penyelesaian R.

akim
sumber
Benar. Kadang-kadang, jika dikatakan ada masalah di XML Anda di mana tidak ada (garis berlekuk merah atau tanda seru kuning), hapus baris yang menyinggung, simpan file XML, tempelkan kembali baris itu, dan simpan lagi. Jika Anda tidak membangun secara otomatis, bangun lagi setelah itu, dan mungkin saja berhasil. Eclipse terkadang bodoh. :)
hotshot309
Terlepas dari jawaban lain yang tercantum di atas, jawaban ini ternyata benar bagi saya. Saya awalnya mendapat pesan "tidak dapat menemukan APK" ketika saya pergi untuk mengkompilasi beberapa kode sampel, kemudian melakukan Bersih yang menghasilkan satu ton kesalahan "R tidak dapat diselesaikan", dan kemudian hanya membuka file .xml dan secara manual menyimpannya kesalahan. dibersihkan dan saya bisa mengkompilasi.
sXe
Jadi benar: Setelah membersihkan proyek, R.java hilang - mengedit dan menyimpan strings.xml memecahkan masalah.
BurninLeo
12

Periksa nama file XML. Pastikan semuanya dalam huruf kecil.

Juga pastikan bahwa semua nama sumber daya gambar juga semuanya dalam KASUS RENDAH. Saya memiliki huruf kapital atas nama file jpg saya, dan itu menyebabkan kesalahan R yang belum terselesaikan tepat di seluruh proyek saya.

TonyS
sumber
+1 untuk ini adalah masalah saya. Anda harus memberi nama gambar Anda seperti ini: eicon.png bukan eIcon.png. Saya menemukan kesalahan dengan melihat Consol. Itu mengembalikan kesalahan pada file dengan Nama File Tidak Valid: ...
jasonflaherty
12

Radalah kelas yang dihasilkan. Jika Anda menggunakan Android Development Tools (ADT), itu dihasilkan setiap kali proyek dibangun. Anda mungkin menonaktifkan 'Bangun Otomatis'.

Josef
sumber
10

Kesalahan ini terpotong pada instalasi Linux Mint x64 saya. Ternyata hasilnya adalah kegagalan dalam ADBbiner, karena ia32-libspaket itu tidak diinstal. Cukup menjalankan apt-get install ia32-libsdan meluncurkan kembali Eclipse memperbaiki kesalahan.

Jika distro x64 Anda tidak memiliki ia32-libs, Anda harus menggunakan Multiarch.

Periksa # 4 dan # 5 pada posting ini: http://crunchbang.org/forums/viewtopic.php?pid=277883#p277883

Semoga ini bisa membantu seseorang.

Meião
sumber
Perlu dicatat bahwa jika Anda memiliki instalasi Linux 64-bit, Anda AKAN membutuhkan ia32-libs. Jika Anda tidak memilikinya, mencoba menjalankan perintah adb akan menghasilkan pesan aneh yang mengatakan itu tidak dapat menemukan file atau direktori.
rs_atl
10

Anda mungkin perlu memperbarui / menginstal alat SDK. Luncurkan kembali Android SDK Manager lagi dan instal item baru: Android SDK Build-tools.one dengan satu penghapusan, perbaiki yang mana berfungsi untuk Anda.masukkan deskripsi gambar di sini

Nazmul Hasan
sumber
9

Anda mungkin perlu memperbarui alat SDK. Luncurkan kembali Android SDK Manager lagi dan instal item baru: Android SDK Build-tools.

masukkan deskripsi gambar di sini

Eduardo Dennis
sumber
8

Saya punya masalah ini juga. Ternyata saya tidak sengaja menghapus sumber daya string "app_name" dari strings.xmlfile, yang menyebabkan kesalahan diam. Setelah saya menambahkannya kembali, kelas R berhasil dibuat dan semuanya kembali dan berjalan.

Guy Starbuck
sumber
6

Cobalah untuk membuat huruf kecil nama tata letak XML baru Anda. Misalnya, gunakan my_file.xmlsebagai ganti myFile.xml.

Malcom
sumber
+1 YA! Pastikan itu mengikuti konvensi penamaan yang benar ... [a-z0-9_.]
jasonflaherty
6

Namun alasan lain R.javamungkin tidak mendapatkan autogenerated adalah jika Anda memiliki direktori seperti res / drawable-hdpi , res / drawable -mdpi , atau res / drawable-ldpi .

1.6+ tampaknya baik-baik saja dengan direktori ini, tetapi 1,5 tidak menginginkannya. Ketika saya menghapus direktori itu, R.javamulai membuat autogenerasi lagi untuk saya.

Peter Mortensen
sumber
6

Pemeriksaan pertama apakah ada kesalahan dalam tata letak xml atau tidak, jika kemudian atasi dulu.

Kalau tidak, hapus ketergantungan junit dari proyek dan bangun kembali proyek.

masukkan deskripsi gambar di sini

Jaimin Prajapati
sumber
5

Sering kali ini karena nomor versi MinSDK yang Anda berikan saat membuat proyek. Contoh:

Jika Anda ingin 2.1 menjadi minimum, Android 2.1 sebenarnya adalah API Level 7.

Anda dapat melihat apa yang saya bicarakan ketika Anda menelusuri SDK yang Anda unduh dan instal. Arahkan ke tempat Anda menginstal SDK ke ( C:\android-sdk-windowsmisalnya) dan buka folder bernama "platform". Anda akan melihat sesuatu seperti "android-7" terdaftar sebagai folder, dan jika Anda membuka bahwa ada source.propertiesfile yang, ketika dibuka dengan editor teks, akan menampilkan versi platform yang sesuai.

Saat Anda membuat proyek, dan Anda harus memilih API "Bangun Target", kolom terakhir dalam daftar yang bernama "Tingkat API" menunjukkan angka yang Anda cari saat mengisi pengaturan MinSDK.

Ini mungkin salah satu kesalahan paling umum yang menyebabkan R.javafile tidak dibuat di bawah Project> gen> packagename> R.java.

Aaron DeRenard
sumber
5

Hapus main.out.xml. Saya baru dalam hal ini dan belum tahu untuk apa file ini digunakan, tetapi menghapusnya telah menyelesaikan masalahnya.

pengguna389061
sumber
5

Buka saja daftar menu Top Android. klik pada Bangun Menu, di bawah Bangun klik pada Rebuild Project .

masukkan deskripsi gambar di sini

Gundu Bandgar
sumber
4

Saya punya contoh Android 8 dan mencoba menggunakan Android 7 SDK. Ketika saya menutup proyek dan membuka kembali folder aplikasi dan memilih untuk menggunakan Android 8 SDK, ia dapat menemukan file R. Semoga ini membantu.

vkris
sumber
4

Dalam kasus saya, saya mengalami kesalahan pada file saya AndroidManifest.xml. Yang lain mengatakan bahwa file XML Anda harus bebas dari kesalahan, tetapi saya hanya mencari di folder res /. Temukan dan perbaiki sebanyak mungkin kesalahan dan masalahnya mungkin teratasi dengan sendirinya.

Brian Lacy
sumber
Ini adalah pelakunya dalam kasus saya. Kesalahan apa pun dalam file manifest.xml dapat menyebabkan masalah ini jika R.java belum dibangun.
Scott Biggs
4

Jika ada yang tertarik (saya mungkin menyelamatkan hidup Anda di sini), saya memiliki kesalahan, R.xmltidak dapat diselesaikan, sedikit berbeda pada proyek GLS. Hmmmm. Setelah melihat ke dalam R.java, saya menemukan kelas yang dibuat secara otomatis XML.java,, (saya pikir) tidak ada di sana.

Larutan? Itu membutuhkan folder baru di res: res\xmldan file yang dipanggil default_values.xml di sana. Lalu semuanya baik-baik saja.

Kalau-kalau Anda tidak punya file itu, itu:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">
</PreferenceScreen>
phil
sumber