“Tidak dapat menyelesaikan simbol R” di Android Studio

715

Dalam setiap contoh di semua kelas saya di mana saya referensi R.id.something, Rberwarna merah dan berbunyi "tidak dapat menyelesaikan simbol R". Juga setiap kali ada yang R.layout.somethingdigarisbawahi dalam warna merah dan mengatakan "tidak dapat menyelesaikan metode setContentView (?)". Proyek ini selalu dibangun dengan baik. Sangat menyebalkan melihat ini sepanjang waktu. Saya telah membaca banyak pertanyaan lain di sini tentang sesuatu yang serupa tetapi paling banyak melibatkan proyek impor dari Eclipse. Saya menggunakan apa yang saya yakini sebagai versi terbaru dari Android Studio dan proyek ini dibuat dengan Android Studio dan bekerja tanpa masalah "tidak dapat menyelesaikan R". Saya ingin tahu apa penyebabnya jika ada yang tahu.

ez4nick
sumber
di masa lalu saya mendapatkan kesalahan xml seperti: progressbar tidak dapat dilemparkan ke android.widget.textview, dan saya memperbaikinya dengan hanya mengubah nama textview. Saya masih benar-benar tidak tahu apa yang menyebabkan kesalahan untuk memulai.
ez4nick
Jika Anda mengubah nama, mungkin Anda sekarang mencoba menggunakan referensi string yang tidak ada di res / strings.xml?
Eyeball
2
Saya mencari berkali-kali sebelum mengajukan pertanyaan ini dan menemukan banyak pertanyaan serupa termasuk yang Anda sebutkan. Saya memang membaca saran dalam pertanyaan itu dan tidak ada impor Android.R di salah satu file java saya.
ez4nick
2
Hai semua orang yang saya lupa menanyakan pertanyaan ini karena sudah lama ditanyakan. Saya seharusnya menerima jawaban saya sendiri setahun yang lalu yang sekarang adalah komentar di atas ini. Masalahnya hanya dengan bahwa studio android berada pada tahap awal pada saat itu dan sebagai pengembang baru saya seharusnya tidak pernah menggunakannya. Yakinlah semuanya bekerja dengan baik sekarang dan telah. Jika mungkin, harap batalkan penghapusan jawaban asli saya sehingga saya dapat menerimanya.
ez4nick
3
Tidak menemukan R bukankah kesalahan Anda merupakan kesalahan yang disebabkan oleh kesalahan Build Perbaiki kesalahan Anda yang lain dan Anda akan baik-baik saja.
Just_someone

Jawaban:

720

Saya punya masalah ini juga. Sebuah 'gradlew clean' dan 'gradlew build' yang sederhana berhasil.


Klik pada Build-> Clean Project dan itu akan melakukan gradle clean

Vipassana Vijayarangan
sumber
56
beberapa kali Anda juga perlu me-restart android studio. atau setidaknya untukku.
Pengguna Foo Bar
24
Bagi mereka yang kejang menggunakan baris perintah, klik pada Build-> Clean Project dan itu akan melakukan 'gradlew clean'. ;)
Mr. Concolato
22
Tidak berhasil ... Pembangunan kembali pembersihan tidak berhasil
CandleCoder
7
Jika bersih, membangun kembali, membatalkan cache-restart tidak menyelesaikan pergi untuk: import package.R;
Sudip Bhandari
2
Bagi saya ini yang menyebabkan masalah: Ketidakcocokan antara ApplicationId dalam gradle dan nama paket dalam manifes (dan meskipun impor otomatis menambahkan alamat yang salah untuk file R). Saya merekomendasikan artikel kecil ini untuk membuat klarifikasi perbedaan antara keduanya. blog.stylingandroid.com/package-name-vs-aplikasi-id
Tina
227

Di versi terbaru Android Studio, setidaknya bagi saya, berikut ini berfungsi:

"Alat" -> "Android" -> "Sinkronkan Proyek dengan File Gradle"

Di Android Studio 3.1.3 terbaru (Juli 2018), "Sinkronkan Proyek dengan File Gradle" tersedia di bilah menu utama.

masukkan deskripsi gambar di sini

Tom C.
sumber
Apa versi Android Studio yang Anda gunakan saat itu?
Joel Handwell
Tidak bekerja untuk saya (Android Studio 0.8.14). Tapi, proyek Build> Clean bekerja dengan baik.
Phat H. VU
Masih berfungsi di Android 1.2.1. Ingatlah untuk melakukan ini lebih dari sekali, jika itu tidak berhasil pada kali pertama.
noob
Ini adalah satu-satunya hal yang berhasil untuk saya. Saya mencoba semua solusi lain terlebih dahulu.
Mac
1
Di Android Studio 3.1.1, opsi ini ada di File -> Sync Project with Gradle Files
Hrishikesh Kadam
155

Saya menggunakan gradle 3.3.0. Itu adalah penyebab utamanya. Terbuang 6,50 jam dari hidupku. Gradle 3.2.1 menghapus kesalahan.

classpath 'com.android.tools.build:gradle:3.2.1'

Masalah teratasi setelah mengubah versi gradle. Detail sejarah dapat ditemukan di sini .

Tushar Monirul
sumber
9
Satu lagi prestasi luar biasa oleh pengembang studio Android. Kembali ke 3.2.1sebenarnya adalah satu-satunya solusi yang berhasil bagi saya ...
Vucko
1
Yang mengejutkan masih menjadi masalah 2 bulan kemudian. Versi terbaru (3.3.2) tidak memperbaikinya, 3.2.1 melakukannya.
JakeSteam
Alih-alih kembali ke gradle, 3.2.1Anda juga dapat meningkatkan Android Studio ke versi 3.3. Lihat jawaban saya di sini
arne.z
itu bekerja dengan mengubah 3.3.0 ke 3.2.1 tapi pertanyaan saya itu berfungsi dengan baik pada 3.3.0 saya baru saja refactor dan memperbarui file xml manifes dan file gradle dan telah menyinkronkan gradle. Bolehkah saya tahu apa yang menjadi alasannya
insoftservice
25 jam internet dan sepertinya ini adalah satu-satunya solusi yang berfungsi. Terima kasih android studio: (....
Nah Zimbabwe Edwin
108

Saya memiliki masalah yang sama dan inilah yang saya lakukan:

Bersihkan Proyek dan Sinkronkan Proyek dengan Gradle,

masukkan deskripsi gambar di sini

periksa versi buildTools di SDK saya masukkan deskripsi gambar di sini

Dari build gradle (module) ubah minSdkVersion dari 8 menjadi 9

defaultConfig {
        applicationId "PackageName"
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }

Tetapi semua ini tidak membantu.

Akhirnya saya menemukan jawabannya (ini berhasil dalam kasus saya)

Ubah dari build.gradle (module: app)

android {
    compileSdkVersion 21
    buildToolsVersion '21.0.1'
......
....
}

Atau

Pilih File | Struktur Proyek mengubah Versi Alat Bangun ke 21.1.1

masukkan deskripsi gambar di sini

Mina Fawzy
sumber
Ini juga bekerja untuk saya, mengubah build dan mengatur file gradle (module)
Samuele Bolognini
Terima kasih, seperti bijak, ini solusinya.
App Dev Guy
58
  1. Periksa file xml Anda.
  2. Proyek Bersih.

Ini dia.

Misalnya saya punya entri di strings.xml:

<string name="A">Some text</string>

Dan activity_main.xmlsaya menggunakan entri string ini

<TextView
android:id="@+id/textViewA"
android:text="@string/A"/>

Saat sedang bekerja dengan proyek, saya menghapusnya

 <string name="A">Some text</string>

Dan akibatnya activity_main.xmlmenjadi tidak valid. Akibatnya: tidak dapat menyelesaikan R.

Jadi, periksa *.xmlfile Anda dan bersihkan proyek.

Yuriy
sumber
Ini benar-benar menyelamatkan hidup saya [PLUS SATU]
GingerHead
Gambar yang hilang salah satu XML saya disebut menyebabkan masalah ini untuk saya. Letakkan gambar di folder, bersihkan dan R sekarang senang lagi.
Casey Murray
Saya tidak sengaja menetapkan string saya dua kali di strings.xml. Studio tidak menunjukkan itu sama sekali. X- (Terima kasih atas jawaban Anda.
codingjeremy
Ini untuk pembacaan pengembang lainnya. Pendekatan sendiri ini harus menyelesaikan masalah seperti yang terjadi pada saya.
Paramvir Singh Karwal
6
Mengapa tidak ada umpan balik untuk menggarisbawahi file XML yang buruk di IDE?
Fuhrmanator
53

Jika Anda melihat kesalahan ini setelah memindahkan file atau direktori java ke lokasi lain, maka Anda dapat menjamin bahwa Android Studio menjadi bingung. Dan coba tebak? membatalkan tindakan tersebut tidak memperbaiki masalah.

Jadi Anda mencoba membersihkan, tetapi itu tidak berhasil.

Dan memulai kembali tidak berhasil.

Tapi coba File -> Batalkan Cache / Restart ... -> Validate dan Restart

Android Studio menyimpan informasi tentang file mana yang bergantung pada file lainnya. Dan karena memindahkan file di sekitar tidak diterapkan dengan benar, memindahkan file menyebabkan kesalahan. Dan itu belum semuanya: cache dari dependensi ini digunakan dalam upaya untuk mempercepat pembangunan.

Ini berarti Anda tidak hanya harus memulai ulang, tetapi Anda harus membatalkan cache tersebut untuk memulihkan (atau lebih tepatnya, membangun kembali) kewarasan.

Scott Biggs
sumber
Tidak membantu Mencoba membersihkan / membangun kembali juga. Terjadi kesalahan setelah saya memindahkan paket java ke paket lain. Menariknya, dalam satu paket kelas R dapat diakses, tetapi tidak dapat diakses dalam paket yang saya pindah.
rintis
Di versi Android Studio yang lebih baru, Invalidate dan Restart sekarang menjadi pilihan menu default. Ini seharusnya membantu setidaknya beberapa orang. (Sayang sekali mereka tidak memperbaiki semua bug gila yang menyebabkan kesalahan ini sejak awal!)
Scott Biggs
1
Saya mendapatkan kesalahan ini setelah memindahkan dan mengganti nama proyek. Ini memecahkan masalah R setelah semua pembersihan dan restart tidak. Terima kasih.
FrankKrumnow
2
Ini kira-kira membutuhkan waktu yang hampir sama dengan mendapatkan secangkir kopi - yang pada gilirannya dapat digunakan untuk mandi kopi dengan baik jika masih menandai R dalam warna merah ... ヽ (´ ー `) ノ
ZooMagic
1
menemukan gif untuk komentar saya sebelumnya -> tenor.com/view/…
ZooMagic
30

Saya pikir jika Anda meletakkan file Aktivitas Anda ke folder lain daripada yang default. Anda perlu mengimpor com.example.yourproject.R(ini Rfile proyek BUKAN Android.Rfile) ke SEMUA aktivitas yang menggunakan R. Misalnya, dalam MainActivityfile masukkan baris ini:

import com.example.yourproject.R;
ninjahoahong
sumber
1
Ah, dan masih akan ada pesan kesalahan sebelum Anda pertama kali membangun. Namun, Anda cukup menekan build, Android Studio akan menghasilkan file R dan build seharusnya berhasil.
ninjahoahong
dan saya pikir lebih baik setelah perbaikan, Anda harus membersihkan proyek Anda dan kemudian membangun. atau tekan Shift + F9 untuk debug dengan perangkat atau emulator Anda. Saya lebih suka melakukan debug pada perangkat nyata.
ninjahoahong
Ini solusi terbaik. Terima kasih Bung
Arundev
jawaban ini adalah tongkat ajaib. terima kasih
leeCoder
28

Tampaknya ada banyak penyebab untuk masalah ini. Baru-baru ini, saya menambahkan aktivitas untuk diuji dengan yang disebut NewActivity. Ini membuat file bernama res/menu/new.xmldan gradle tidak suka nama itu karena baru adalah kata yang dilindungi undang-undang.

gradlew clean

atau

"Tools" -> "Android" -> "Sync Project with Gradle Files"

Itu pasti hal yang baik untuk dicoba, tetapi Anda mungkin memiliki beberapa masalah lain yang perlu Anda selesaikan sebelum Anda menjalankan perintah itu.

chawkinsuf
sumber
terima kasih bekerja untuk saya juga. Pertanyaan kecil - di mana saya harus mengetik gradlew clean jika saya ingin melakukannya dengan cara ini (saya melakukan "Tools" -> "Android" -> "Sinkronkan Proyek dengan File Gradle")?
Sergii
Buka terminal perintah, pindah ke direktori proyek dan jalankan "./gradlew clean"
chawkinsuf
Itu untuk saya. Terima kasih!
TinyGrasshopper
Bagaimana ini memecahkan masalah lebih baik daripada 'Membangun Kembali Proyek'?
IgorGanapolsky
Ya, dalam kasus saya, saya menambahkan file png, yang disebut "import.png". Saya harus mengganti nama, dalam kasus saya "import_icon.png" dan kemudian proyek dikompilasi ok.
mihai71
17

File R.java berisi tautan antara xml dan halaman java. "R tidak dapat diselesaikan" muncul hanya jika ada masalah dengan beberapa file sumber Anda. Jadi cara terbaik dan efektif adalah menghapus xml yang terakhir dilakukan atau digambar dalam file res. dan sekali lagi mulai dari sana sesuai dengan norma pengkodean android. Ini satu-satunya jalan. Cara yang efektif dan benar.

Juga gunakan Git untuk melacak kode dengan benar. ..

Minto
sumber
Dalam kasus saya, tidak hanya masalah dalam XML, tetapi juga di PNG (dapat digambar).
CoolMind
15

Kode Anda baru saja diacak. Jawabannya cukup sederhana.

Cukup buka Build -> Clean Project .

Itu harus melakukan trik.

Periksa juga versi Android Studio Anda.

Saat ini saya menggunakan Android Studio 3.0.1 .

lloydyu24
sumber
14

Sudahkah Anda memperbarui alat SDK Anda baru-baru ini? Luncurkan manajer SDK android dan pastikan Anda memiliki alat SDK terbaru, yang sekarang terpisah dari alat platform. Saya memiliki masalah yang sama ketika saya pertama kali memperbarui manajer SDK saya, paket alat membangun SDK tidak muncul untuk menginstal / memperbarui sampai saya menutup dan membuka kembali manajer SDK.

invertigo
sumber
Saya percaya semuanya up to date di sana. dapatkah itu benar-benar menyebabkan masalah seperti ini?
ez4nick
jika Anda tidak menginstal alat bantu pembangunan SDK baru, ya.
invertigo
12

Cukup bersihkan proyek Anda dan Sinkronkan Proyek dengan File Gradle.masukkan deskripsi gambar di sini

Dan masalahnya akan teratasi.

Arunendra
sumber
Perlu dicatat bahwa mengklik kanan pada "aplikasi" dan mengklik tombol sinkronisasi di menu tidak mencapai ini. Terima kasih.
Mafro34
11

Saya sudah memiliki ini

  1. Huruf besar dalam sumber yang dapat ditarik saya.
  2. Impor Android.R ditambahkan oleh Android Studio (atau Eclipse)
  3. Kesalahan dalam file xml
Ryan Heitner
sumber
Saya punya masalah karena ada kesalahan di salah satu file XML saya. Build->Clean Project
Mengatasi
11

Saya baru-baru ini mengalami masalah ini dan clean / build dll tidak menyelesaikannya. Saya kira saya punya masalah di suatu tempat tetapi tidak yakin di mana mencarinya (apakah ada di manifes, file xml sumber daya, dll?).

Ketika ada sesuatu yang salah, Anda dapat mengetahui apa itu dengan melakukan analisis menjalankan kode.

Dari menu di atas pilih:

Analisis -> Periksa kode, pindai seluruh proyek menggunakan profil 'Default'.

Hasil inspeksi Anda akan mengandung elemen yang disebut 'Android'. Di sini Anda akan mendapatkan daftar apa pun yang menyebabkan masalah pada sumber daya Anda dan file manifes. Kesalahan akan membuka file xml yang dihasilkan dari build Anda yang akan menampilkan kesalahan warna merah.

Masalah persis saya disebabkan karena saya menggunakan file manifes berbasis rasa dan saya menyalin beberapa izin di dalam <application>tag dalam rasa secara tidak sengaja.

Inspeksi

UPDATE: Saya memang punya masalah setelah mana Android Studio masih menunjukkan kesalahan setelah perbaikan, meskipun sekarang saya bisa membangun dan berjalan dengan baik sementara kesalahan itu masih ada. (Saya menjalankan membangun kenari sehingga meletakkannya untuk itu untuk saat ini)

Matthew Cawley
sumber
Menariknya, saya memiliki masalah ini hanya pada satu file dan menjalankan proses "Periksa Kode" dan itu membersihkan sendiri (bersihkan dan bangun kembali tidak memperbaikinya). Pasti ada sesuatu yang macet di Lint yang hanya bisa diatasi. Terima kasih!
rundavidrun
Terima kasih untuk ini! Meskipun ini menemukan banyak kesalahan umum, yang diharapkan, bagian yang menjatuhkan seluruh kastil adalah kesalahan Sintaks kecil dalam file XML yang dihasilkan oleh Asset Studio! Setelah saya menyelesaikan ini, Proyek Bersih memungkinkan saya untuk bergerak maju.
Bink
10

Saya harus mengimpor Rpaket saya di studio android. Misalnya:import com.example.<package name>.R

Petapa genit
sumber
1
Saya sudah di sini sebelum saya berpikir. Terima kasih lagi
Ohiovr
1
Ini berhasil untuk saya. Terima kasih banyak.
Aquarius_Girl
Ini terjadi pada saya setelah saya refactored nama paket saya, tetapi entah bagaimana studio android meninggalkan import com.example.old-package-name.R, jadi saya harus mengganti nama impor.
auspicious99
9

Ini adalah pertanyaan yang sangat lama, tetapi masih sering terjadi dan tidak ada jawaban yang benar-benar komprehensif di sini.

Saya telah mengalami masalah ini lebih dari yang ingin saya akui. Ini bisa disebabkan oleh berbagai masalah yang sebagian besar berhubungan dengan struktur proyek Anda yang tidak sesuai dengan yang diharapkan. Berikut daftar semua masalah yang saya alami:

Mengimpor dari Eclipse ke Android Studio tidak selalu bekerja dengan lancar, terutama dengan versi Android Studio yang lebih lama. Pastikan Anda menggunakan pohon direktori yang benar. Seharusnya terlihat seperti ini untuk aplikasi yang cukup matang:

AppName/        // AppName is your app's name, obviously
    .gradle/    // This is a compiler created directory. You should normally leave it alone
    .idea/      // Ditto
    build/      // This too
    gradle/     // And this
    app/
        build/
        libs/
        src/
            androidTest/   // Tests based on the Android instrumentation runner should go here
            main/
                java/
                    fully/           // Typically com
                        qualified/   // the domain name. Longer package 
                                     // names may have deeper folder trees
                            AppName/ // All your java files go here
                res/
                    drawable-*/      // One of these for each resolution you support
                    layout/          // All of your general layouts
                    menu/            // All of your menu layouts
                    values/          // All of your resource xml files
                    xml/             // PreferenceScreen layouts go here
                AndroidManifest.xml
            debug/         
            test/          // Pure jUnit tests should go here
        .gitignore
        app.iml
        build.gradle   // This is the gradle file you should be making most changes to
        proguard-rules.pro
    .gitignore
    build.gradle       // This gradle file should mostly be left alone
    gradle.properties
    gradlew
    local.properties
    AppName.iml
    settings.gradle

Ini mungkin tidak terlihat seperti ini di IDE Anda. Ada drop-down di atas pohon file yang menampilkan file Anda dengan cara yang berbeda, dan itu default pada sistem saya untuk yang disebut Android yang memecah file Anda menjadi tipe yang berbeda. Lebih mudah untuk memperbaiki masalah semacam ini dari yang disebut Project, dan bahkan lebih mudah langsung dari sistem file OS Anda, karena Android Studio menciutkan folder yang hanya berisi folder lain ke satu baris.

Terutama jika Anda pernah mengubah nama aplikasi Anda, Anda perlu memastikan bahwa pohon induk main / java / com / domain / AppName diperbarui. Pastikan juga tag paket di AndroidManifest.xml Anda sudah benar.

Jika ada kesalahan dalam file Gradle Anda atau AndroidManifest.xml Anda, ini akan mencegah Android Studio membangun dengan benar file sumber daya Anda. File gradle dapat dipecah dengan memperbarui Android Studio kadang-kadang, terutama dari versi pra-1.0. Terkadang ini karena berhenti mendukung versi lama dari plugin Gradle, jadi Anda perlu memperbarui nomor versi Anda. Terkadang sulit menemukan versi yang sekarang. Pada hari ini, 7/17/15, aplikasi saya sedang dikompilasi dengan baik com.android.tools.build:gradle:1.2.3. Ini berada di blok dependensi di file gradle terluar,

Jika AndroidManifest merujuk referensi yang tidak ada atau sumber daya atau aktivitas string, itu akan merusak dan menyebabkan kesalahan ini. Terkadang jika ada referensi sumber daya string atau tidak ada yang ada, Anda akan mendapatkan kesalahan ini.

Jika Anda memiliki file di sumber daya Anda yang rusak, atau file xml tidak valid, Anda akan mendapatkan kesalahan ini.

Dalam pengalaman saya, kadang-kadang Android Studio hanya cegukan tanpa alasan, dan Anda perlu me-restart dan / atau PC Anda. Saya tidak tahu mengapa, tetapi kadang-kadang berhasil.

Jika Anda memiliki dua sumber xml dengan nama yang sama, di direktori yang tidak saling menimpa, Anda dapat memiliki masalah ini. Misalnya, Anda dapat memiliki nama yang sama di drawable-mhdpi dan drawable-xhdpi karena mereka menimpa satu sama lain tergantung pada perangkat target, tetapi jika Anda memiliki nama yang sama dalam tata letak dan menu, itu akan menyebabkan masalah. Ganti nama atau hapus salah satu file.

Jika hanya beberapa sumber daya yang mengalami masalah ini, sumber daya tersebut kemungkinan besar berada di direktori yang salah.

Dalam satu kasus saya harus menginstal ulang Android Studio sepenuhnya. Saya tidak tahu apa yang salah, tetapi itu berhasil.

Dalam satu kasus saya memindahkan seluruh proyek saya ke direktori yang berbeda dan mengimpornya kembali sebagai proyek baru. Saya tidak tahu apa yang salah, tetapi itu berhasil.

File xml dengan kata-kata yang dicadangkan untuk nama dapat menyebabkan masalah ini. Ganti nama atau hapus.

Ada beberapa cara file Gradle Anda dapat merujuk pada versi alat build yang tidak Anda instal. Perbaiki ini dengan mengubah Gradle atau mengunduh alat bantu yang sesuai.

Akhirnya, setelah Anda memperbaiki apa pun yang salah, Anda perlu membersihkan proyek Gradle Anda. Anda melakukan ini dengan pergi ke menu Bangun di atas dan memilih Bersihkan Proyek.

TBridges42
sumber
9

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
9

Saya menghadapi masalah ini ketika saya secara manual mengganti nama folder domain aplikasi saya. Untuk memperbaiki masalah ini, saya harus melakukannya

  1. Atur packagestruktur folder yang tepat <manifest>di AndroidManifest.xml.
  2. Menetapkan lokasi paket baru untuk android:namedari <activity>dalam AndroidManifest.xml.
  3. Bersihkan cache dengan

Menu File -> Batalkan Cache / Restart ...

Masalah akan hilang, begitu studio Android memulai kembali dan membangun indeks baru.

Sridhar
sumber
9

Saya memiliki masalah yang sama: Android Studio 3.2 Proyek mengkompilasi dan berjalan dengan baik, tapi saya mendapatkan "Tidak dapat menyelesaikan simbol" R "peringatan di layar

Apakah tidak membantu:

  • Build-> Clean Project
  • Build-> Rebuild Project
  • File-> Batalkan Cache / Restart

Membantu:

antara

di build.gradle

dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
...
}

ubah dengan

   dependencies {
            classpath 'com.android.tools.build:gradle:3.2.1'
    ...
    }

atau

Perbarui Android Studio ke 3.3

Alex Burov
sumber
Kau telah menyelamatkan hidupku ! Memperbarui studio android ke 3.4 memecahkan masalah bagi saya
Artory
8

Saya punya kasus khusus untuk masalah ini.

Dalam proyek saya, semuanya berjalan dengan baik, dapat dikompilasi dan dibangun dengan sukses, tetapi di Android Studio IDE saya (dan saya juga mencoba Intelligent IDEA, mereka berada dalam situasi yang sama) file R.java tidak dapat diselesaikan dengan baik dan selalu menjadi turun di garis merah.

Seperti ini: masukkan deskripsi gambar di sini

Ini hampir membuat saya gila, saya tidak tahan dengan warna baca ketika saya memprogram.

Akhirnya saya menemukan masalah rumit ini disebabkan oleh ukuran file R.java saya. Proyek saya sangat besar, mendukung banyak bahasa dan ukuran layar multi. Ada begitu banyak sumber daya sehingga ukuran file R.java saya sekitar 2,5 juta .

Ukuran maksimal file di Android Studio adalah 2,5 juta dalam pengaturan default, jadi file yang lebih besar dari batas ini tidak dapat diselesaikan dengan baik. Dan Anda dapat mengubah pengaturan default di "AndroidStudio-root / bin / idea.properties".

ubah baris ini:

idea.max.intellisense.filesize=2500

untuk:

idea.max.intellisense.filesize=5000

Kemudian restart studio Android, warna merah diberhentikan, saya dapat memprogram dengan senang hati lagi.

Fido Zhang
sumber
Di Android 3.2 hanya membantu / Edit Properti Kustom
Beto
tip yang baik, tetapi itu tidak menyelesaikan saya tidak dapat menyelesaikan simbol R
Aliton Oliveira
7

Build> Clean Project

Ini berhasil untuk saya. Punya masalah yang sama beberapa kali, dan ini tampaknya memperbaikinya. Kecuali Anda telah mengubah sesuatu atau disebut variabel R. Masalah ini biasanya terjadi entah dari mana, ketika itu terjadi pada saya, jadi saya membayangkan hanya studio Android yang panik. ha ha

Selamat bersenang-senang, dan semoga sukses dengan proyek Anda.

S.Pedro
sumber
Terima kasih. Ini juga berhasil untuk saya. Saya mengganti beberapa gambar dalam drawable dan mendapatkan kesalahan itu.
KCP
7

Apakah: Membangun> Proyek Bersih

PENTING: Pastikan Anda tidak memiliki kesalahan setelah Proyek Bersih di Panel Pesan (Alt + 0). Jika Anda menemukan lingkaran merah dengan tanda seru, maka Anda harus menghapus kesalahan itu dalam kode Anda.

Sebagian besar kesalahan ini terkait dengan @ string / atau @ array /. Bersihkan Proyek lagi dan selesai!

Hassan Naqvi
sumber
7

Saya memiliki masalah yang sama, dan itu terjadi ketika saya membuat proyek baru.

Apa yang saya lakukan adalah:

  • periksa pembaruan SDK
  • maka pembaruan android studio,
  • kemudian buka kembali proyek
  • buka andoridmanifest.xml
  • hapus spasi di antara tanda "_>" di android: dan simpan.

Itu bekerja untuk saya.

Elsanty
sumber
7

Saya kesulitan memperbaiki ini sendiri.

  • Pastikan Anda tidak memiliki kesalahan dalam file layout.xml Anda.
  • Pergi ke Build> Clean project

Itu bekerja untuk saya, semoga berhasil juga untuk Anda.

Oussama Essamadi
sumber
6

Saya memiliki masalah yang sama dan seringkali diselesaikan dengan

  • Sinkronkan proyek dengan file gradle
  • Doing Build -> Clean Project
  • Melakukan File -> Cache Tidak Valid

Tetapi kali ini kesalahan tetap ada bahkan setelah melakukan semua hal ini dan akhirnya saya menemukan pelakunya.

Masalahnya adalah dalam file xml , di mana saya telah memberikan nilai string biasa untuk android:idbukan tipe sumber daya id .

KESALAHAN

android:id="username"

KOREKSI

android:id="@id/username"

Mengacaukan hal-hal yang terkait dengan resourcesdalam file xml adalah alasan utama untuk kesalahan ini. Waspadalah terhadap kenyataan bahwa itu mungkin tidak ditampilkan sebagai kesalahan dalam file tata letak xml.

CATATAN

Dalam kebanyakan kasus, kompiler menunjukkan kepada Anda sumber kesalahan dalam Pesan. Cobalah untuk memeriksanya terlebih dahulu sebelum mencoba solusi lain

Siva Prakash
sumber
6

`Saya memiliki masalah yang sama dan diselesaikan dengan:

1) Sync Project with gradle files
2) Build -> Clean Project
3) Build -> Rebuild Project
4) File -> Invalidate caches

//imp step
5) Check your xml files properly.`
Bapusaheb Shinde
sumber
Ini adalah jawaban yang bagus, walaupun saya hanya perlu menempatkan '//' di file gradle dan pilih resync. Kemudian semua AS mengenali impor dan mengizinkan saya untuk menjalankan aplikasi.
Val
5

Notasi ini tampaknya berfungsi dengan baik.

android:id="@+id/viewID"

Panel desain Android Studio tampaknya tidak berfungsi dengan baik.

Tevin J
sumber
5

Permasalahan yang sama. Dimulai ketika saya menambahkan beberapa gambar di folder yang dapat digambar dan mencoba mengaksesnya. Juga gambar yang ditambahkan memiliki ekstensi dengan huruf kapital. Tampaknya telah menabrak bangunan, karena bahkan jika saya mengganti nama mereka, pesannya sama dan R tidak dapat diakses. Apa yang saya lakukan adalah, dalam file .iml saya mencari excludeFolder dan menghapusnya (seperti di bawah):

  <excludeFolder url="file://$MODULE_DIR$/build/apk" />
  <excludeFolder url="file://$MODULE_DIR$/build/assets" />
  <excludeFolder url="file://$MODULE_DIR$/build/bundles" />
  <excludeFolder url="file://$MODULE_DIR$/build/classes" />
  <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" />
  <excludeFolder url="file://$MODULE_DIR$/build/incremental" />
  <excludeFolder url="file://$MODULE_DIR$/build/libs" />
  <excludeFolder url="file://$MODULE_DIR$/build/manifests" />
  <excludeFolder url="file://$MODULE_DIR$/build/res" />
  <excludeFolder url="file://$MODULE_DIR$/build/symbols" />
  <excludeFolder url="file://$MODULE_DIR$/build/tmp" />

Setelah itu saya membangun kembali proyek dan R secara ajaib muncul kembali.

pengguna1137313
sumber
5

Ada banyak penyebab kesalahan ini.

  1. Kadang-kadang terjadi untuk mengganti file gambar dengan nama yang sama.
  2. Misalkan Anda menghapus item dari tata letak Anda .xml katakan a <Button/>tetapi item tersebut masih dinyatakan dalam Aktivitas atau Fragmen .java.
  3. Masih banyak lagi.

Cara terbaik untuk melacak kesalahan adalah Bangun kembali itu agak bersih atau sinkronisasi melakukan beberapa kesalahan yang disengaja.

Jika itu tidak menyelesaikan masalah Anda maka harus ada kesalahan atau kesalahan runtime atau kesalahan terjadi karena penggunaan sumber daya yang tidak tepat dapat berupa file java atau xml dalam kode atau desain Anda yang memaksa gradle untuk berhenti karena (R ) file esource tidak dapat mengindeks sumber daya Anda dengan benar dan Anda harus mengakuinya.

Jika proyek Anda berjalan sebelum Anda melakukan perubahan maka komentarlah perubahan yang telah Anda buat dan cobalah untuk membangun kembali proyek.

Ini pasti akan berhasil karena tidak akan ada perubahan.

Untuk melacak kesalahan sebenarnya, periksa perubahan dengan memecah perubahan menjadi modul yang lebih kecil.

Misalnya - Jika Anda membuat daftar terlihat dengan klik tombol dan memasukkan nilai daftar dalam adaptor, periksa dulu apakah Anda dapat membuatnya terlihat atau tidak, kemudian periksa kesalahan adaptor.

Sourav Roy
sumber
4

Ini adalah sakit kepala besar bagi saya. Dalam kasus saya kesalahan muncul setelah mengonfigurasi "Google Play Services" di Android Studio (menginstal + build.gradle config). Hal ini pada gilirannya memerlukan menitdk> 7 tetapi kesalahannya sangat tidak jelas (sebenarnya keluhan tentang ini hanya muncul sebagai "info"). Bagaimanapun .. setelah mengubah menitdk ke 8 baik dalam file manifes dan file build.gradle dan membangun kembali proyek, kesalahan sudah hilang.

Jadi .. saran umum tentang ini, jika saya dapat menggeneralisasi - Anda mungkin memiliki beberapa masalah dalam file manifes Anda, atau beberapa file konfigurasi lainnya, yang mencegah pembangunan yang benar. Coba cari dengan sangat keras pada laporan kesalahan, bahkan pesan berjudul "info" untuk petunjuk apa pun tentang ...

ayal gelles
sumber