Android Studio inline kompiler menunjukkan kesalahan merah, tetapi kompilasi dengan gradle berfungsi dengan baik

147

Saya telah menyiapkan proyek saya di Android Studio untuk menggunakan pustaka Square Wire , sesuai pertanyaan ini .

Build-> Compile Projectberfungsi dengan baik.

2:03:10 PM Compilation completed successfully in 31 sec

Namun, jika saya membuka salah satu file Protokol Buffer yang saya hasilkan, maka paket Square tidak dikenali.

Android Studio inline kompilasi kesalahan

Gejala lain adalah bahwa metode yang diwarisi dari Messagekelas Square ditampilkan sebagai "Tidak dapat menyelesaikan metode" kompilasi kesalahan dalam editor, meskipun mereka membangun dan berjalan dengan baik.

Kesalahan kompilasi satu baris Android Studio

Apakah saya perlu melakukan sesuatu lebih dari sekadar menambahkan ketergantungan build.gradleuntuk modul saya di proyek saya?

Dan J
sumber
Saya memiliki masalah serupa menggunakan perpustakaan saya (bukan yang eksternal), lihat bagaimana saya mengatur untuk memperbaikinya di sini: stackoverflow.com/a/50569818/373033
nah0y

Jawaban:

132

Langkah-langkah berikut membantu

  1. Tutup proyek Anda, dan dalam folder proyek Anda hapus project/.idea
  2. Hapus ~/.gradlefolder.

Buka proyek lagi. Semuanya harus diselesaikan.

Bioz Nguyen
sumber
1
Menghabiskan berjam-jam untuk masalah ini. Terima kasih. Kesalahan saya adalah saya baru saja menghapus .gradle dan bukan .idea
M pada
2
Ini bekerja untuk saya menghapus .gradle dan .idea dan kemudian melakukan invalidate dan restart menyelesaikan masalah saya. lalu sinkronkan dengan gradle.
Pankaj
Saya telah memindahkan .gradlefolder dari C:\Users\Hasnain\.gradleke direktori lain. Setelah itu, studio android menunjukkan kesalahan pada masing-masing dan setiap kelas. Lalu saya ikuti langkah-langkah yang disebutkan di atas, maka masalah terselesaikan.
hasnain_ahmad
38
Menghapus semua yang ada di .ideadirektori adalah ide yang buruk, karena mungkin mengatur ulang semua pengaturan proyek. Hanya menghapus .idea/librariesdan .idea/cachesakhirnya menyelesaikan masalah untuk saya setelah mencoba semua solusi lain.
fdermishin
bekerja dengan sangat baik di AS 3.1.3. Saya bahkan tidak perlu membatalkan cache. Mari berharap AS akan membangun lebih cepat sekarang!
Seseorang di suatu tempat
111

Berkat free3dom untuk membuat saya berada di jalur yang benar di sini.

Diagnosa

The Sync Project with Gradle Filespilihan di Android Studio tampaknya untuk menjaga Project Structureperpustakaan up to date.

sinkronisasi bertahap

Namun, dalam kasus saya ada beberapa kesalahan:

kesalahan ditemukan

Memperluas tautan (tidak terlalu jelas) menunjukkan detailnya. Pustaka runtime kawat saya ditampilkan di lokasi yang salah:

perpustakaan

Ini sepertinya hangover dari konfigurasi asli saya di mana saya telah mengimpor JAR ke folder libs.

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

Saya kemudian mengubahnya untuk diimpor langsung dari Maven Central ( seperti di sini ), dan sepertinya pengaturan lama tidak pernah ditimpa dengan yang baru.

Cara Mengatasinya

Cara mengatasinya adalah menghapus ketergantungan pustaka dari Project Structurelayar dan kemudian Sync Project with Gradle Fileslagi.

Lebih detail

Anda juga dapat melihat jalur apa yang digunakan untuk sumber daya dengan membuka .idea/libraries/wire_runtime_1_2_0.xmlsecara langsung.

Yang rusak saya adalah:

  <component name="libraryTable">
  <library name="wire-runtime-1.2.0">
    <CLASSES>
      <root url="jar://$PROJECT_DIR$/MY_MODULE/libs/wire-runtime-1.2.0.jar!/" />
    </CLASSES>
    <JAVADOC />
    <SOURCES />

Setelah menghapus dan menambahkan kembali perpustakaan itu berubah root urlmenjadi:

      <root url="jar://$USER_HOME$/.gradle/caches/artifacts-26/filestore/com.squareup.wire/wire-runtime/1.2.0/jar/44e7acbd5eb6f29698181dc3d67a60acf7efee80/wire-runtime-1.2.0.jar!/" />

Memperbarui

Android Studio v0.4.4 tampaknya memperbaiki bug lain yang memiliki gejala yang sama, jadi jika Anda memiliki versi yang lebih lama, Anda mungkin ingin memutakhirkan.

Dan J
sumber
3
Terima kasih Dan J. Sebelum saya mencoba solusi Anda, saya mencoba yang lebih mudah ini (menurut saya) dan itu berhasil untuk saya: Buka panel Gradle di sisi kanan editor (di atas "Proyek Maven" dan "Komandan") dan mengklik tombol segarkan. Itu menyegarkan pengaturan modul. Kredit ke @Matteo Danieli (lihat: stackoverflow.com/a/17043001 )
almighty972
1
diperlukan untuk menghapus dependensi jar lokal, yang menyelesaikannya untuk saya, terima kasih atas ilhamnya
jhegedus
Saya baru saja mengklik "Sinkronkan proyek dengan file Gradle" dan semuanya baik-baik saja sekarang! Terima kasih banyak! Anda telah menyelamatkan hari saya haha
Jorge Gabriel Siqueira
Tidak bekerja untuk saya. Tapi menghapus .gradle dan .idea berhasil
Golnar
Saat ini tombol yang sama ditampilkan sebagai ikon gajah dengan panah bawah.
tm
87

Solusi Sederhana

Pergi melalui tautan dan itu berhasil untuk saya.

  1. Pilih Fileopsi dari menu di sisi kiri atas android studio.
  2. Pilih opsi: Invalidate Cache/RestartIni akan membuka dialog.
  3. Klik pada tombol pertama dengan opsi: Invalidate and Restart
  4. Ini akan menutup Android Studio dan memulai kembali. Juga, itu akan mulai mengindeks ulang proyek.

Itu menyelesaikan masalah saya

Buka File > Cache / Restart Tidak Valid > Validasi dan Restart

Sumber di sini untuk youtube

Manmohan Soni
sumber
Ini bekerja untuk saya; Android Studio menunjukkan kesalahan di mana-mana setelah saya mencoba melakukan pemrograman di lokasi dengan penerimaan wifi yang buruk. (!!!) Saya kemudian memastikan saya memiliki koneksi wifi yang baik dan dibangun kembali, namun kesalahan tetap ada. Bahkan bangunan / bersih tidak menyelesaikannya. Tembolok tidak valid memperbaikinya.
Seseorang di suatu tempat
Menggunakan Android Studio 2.1.3 di Fedora. Solusi ini berhasil untuk saya. Menambahkan alat libgdx dan impor mengalami kesalahan tetapi dikompilasi dengan baik. Menutup dan membuka kembali tidak berfungsi tetapi melakukan yang tidak valid dan memulai kembali bekerja dengan baik.
JoeMoe1984
1
Bekerja di AS 3.1.4! Saya pikir ini semua saran adalah cara yang tepat untuk menanganinya. Ini adalah perintah menu dari Android Studio. Itu jelas jauh lebih baik daripada melakukan reset secara manual di lingkungan file.
Jan Bergström
Bekerja untuk saya pada 3.5.1
Neela
44

1) Klik pada ikon gradle (sisi kanan pada studio android)

masukkan deskripsi gambar di sini

2) Klik tombol segarkan dan tunggu masalah teratasi: D

masukkan deskripsi gambar di sini

DroidDev
sumber
Pada Android Studio 3.1 +, silakan buka File> Valid Cache / Restart> Validate dan Restart.
DroidDev
17

Saya masih mengalami masalah yang sama dengan Android Studio v3.2.1 terus-menerus, dan menyelesaikan masalah hanya dengan menghapus dua sub-folder .ideafolder ini (tidak perlu menghapus seluruh .ideafolder) sementara sinkronisasi bertahap tidak berfungsi:

  • ./idea/caches
  • ./idea/libraries
GoRoS
sumber
Dalam kebanyakan kasus itu memecahkan masalah saya. Dalam beberapa orang lain, mungkin perlu untuk "Menyingkirkan cache dan memulai kembali", atau juga mengubah versi Gradle.
GoRoS
12

Bagi saya menghapus folder .gradle dan .idea proyek memecahkan masalah.

kvadityaaz
sumber
11

Lakukan saja ini di studio Android Anda:

File -> Validasi cache / Restart -> Validasi dan Restart

Ini berhasil untuk saya. Tidak perlu menghapus folder ./gradle atau ./idea

Arun Yogeshwaran
sumber
9

Perbaikan hacky saya untuk ini -

  1. Buka build.gradlefile Anda
  2. Gunting semua yang ada di dalamnya dependencies{}
  3. Tempel di notepad untuk penyimpanan sementara yang super aman
  4. Pilih 'Sinkronkan Sekarang' dalam build.gradlefile
  5. Tunggu Sinkronisasi gagal
  6. Tempel dependensi Anda kembali
  7. 'Sinkronkan Sekarang' lagi

Mencoba banyak solusi dan ini adalah satu-satunya perbaikan untuk saya.

jnutttzzz
sumber
7

Saya mengalami masalah ini setelah memutakhirkan ke Android Studio 3.1. Saya memecahkan masalah dengan memutakhirkan semua komponen yang saya gunakan. Jadi saya mengubah entri berikut di build.gradle (aplikasi) saya:

  1. Tingkatkan SDK (dari "compileSdkVersion 25" ke "compileSdkVersion 26" atau mungkin lebih tinggi ketika Anda membaca catatan ini):

    // compileSdkVersion 25

    compileSdkVersion 26

    Komentar: Perubahan ini memaksa program untuk mengunduh / menginstal SDK baru selama sinkronisasi berikutnya.

  2. Tingkatkan appcompat-v7:

    // implementasi 'com.android.support:appcompat-v7:25.4.0'

    implementasi 'com.android.support:appcompat-v7:26.1.0'

  3. Tingkatkan firebase:

    // implementasi 'com.google.firebase: firebase-ads: 11.4.2'

    implementasi 'com.google.firebase: firebase-core: 12.0.1'

    implementasi 'com.google.firebase: firebase-ads: 12.0.1'

  4. Di PROJECT build.gradle, tingkatkan layanan google:

    // classpath 'com.google.gms: google-services: 3.1.0'

    classpath 'com.google.gms: google-services: 3.2.0'

  5. Tingkatkan gradle (dari 4.4 ke 4.6). Dari gradle-wrapper.properties: distributionUrl = https: //services.gradle.org/distributions/gradle-4.6-all.zip

Setelah perubahan ini, bersihkan proyek, batalkan cache / restart, hapus .idea / konten perpustakaan dan sinkronisasi ulang (tidak yakin tentang pesanan tetapi SEMUA kegiatan ini menyelesaikan masalah bagi saya).

Pablo Alfonso
sumber
1
bagaimana dengan komponen lain yang tidak memiliki versi yang lebih baru?
Amir Dadgari
Saya tidak tahu Itulah komponen yang saya miliki dalam proyek saya.
Pablo Alfonso
Hai Amir, menurut situs web resmi, gradle 4.4 adalah yang terbaru (per Maret 2018). Di mana Anda menemukan Gradle 4.6?
Pablo Alfonso
Saya menemukan lokasi Gradle 4.6. Saya memperbarui jawabannya. Terima kasih.
Pablo Alfonso
4
hapus .idea / konten perpustakaan, itu berfungsi untuk saya. terima kasih banyak
Trem Nguyen
7

Menghapus folder libraries di .idea memecahkan masalah untuk saya. Itu terletak di root / .idea / perpustakaan proyek.

Saya menggunakan Android Studio 3.1.4

Kamen Stoykov
sumber
2
Ini berhasil tetapi saya harus membatalkan dan memulai kembali juga.
Dan Anderson
5

Di bawah ini langkah-langkah ketika Proyek berhasil dikompilasi tetapi dengan kelas yang tidak terselesaikan (Semua penggunaan kelas akan berwarna merah di semua file)

Langkah 1. Hapus file .gradle

Langkah 2. Hapus file .idea

Langkah 3. Buka Jendela studio Android baru dengan beberapa proyek Android lainnya di sistem Anda dan tutup Proyek Anda dengan kesalahan

Langkah 3. Sekarang Buka / Impor Proyek sekali lagi dari bilah alat studio Android Studio -> File -> Open

Catatan: Sekarang ketika Anda mengimpor proyek, folder .gradle dan .idea baru akan di-autogenerasi dengan dependensi yang diselesaikan oleh kompiler.

Sumith.Pattar
sumber
2

Jika semua jawaban di atas tidak berhasil untuk Anda. Coba perbarui dependensi Anda ke versi terbaru. Ini berhasil untuk saya.

Cuong Nguyen
sumber
2

Saya mencoba sebagian besar perbaikan di atas dan apa yang sebenarnya berhasil adalah menghapus semua folder konfigurasi .AndroidStudio dan kemudian me-restart Android Studio.

  • Lokasi: C: \ Users \ your.username
FEDER DIEGO
sumber
2

Saya menemukan cara mudah

  • Buka level aplikasi build.gradle
  • Hapus ketergantungan yang menunjukkan kesalahan & Sinkronisasi.
  • Sekali lagi tambahkan ketergantungan & Sinkronisasi.

Kesalahan Hilang!

Sebelum

Sebelum

Setelah

Setelah

Khemraj
sumber
2

Menghapus .idea/cachesdan .idea/librariesharus memilah semua kesalahan.

Karan_powered_by_RedBull
sumber
2

Tampaknya semua orang menggunakan pendekatan yang berbeda untuk menyelesaikan masalah ini. Saya akan menyarankan yang lain yang saya rasa sedikit kurang invasif daripada yang lain. Ketika saya memperkenalkan perubahan dari perpustakaan aar yang saya sertakan, saya akan membuka file "settings.gradle" untuk proyek tersebut.

Kemudian hilangkan modul proyek utama dari daftar proyek:

include ':mainproj',

dan kemudian sinkronkan proyek Anda. Kemudian tempel kembali dan sinkronkan kembali proyek Anda sekali lagi. Saya percaya bahwa ini sama dengan beberapa langkah penghapusan manual, tetapi ini memungkinkan Anda melakukannya dari IDE sedikit lebih cepat dan tidak terlalu menyakitkan.

Jay Snayder
sumber
Bekerja dengan baik untuk saya. Terima kasih! @ Jay Snayder
Shivam
2

Saya diperbaiki dengan metode di bawah ini

Metode 1

File> Cache / Restart Tidak Valid> Validasi dan Restart

Metode 2

  • Jika Anda menghadapi kesalahan ini hanya untuk proyek tertentu, maka lakukan ini
   1. Close current project
   2. Go to your project path C://User/Android studio project/your project
   3. Delete two files .gradle and .idea
  • Jika Anda menghadapi kesalahan ini untuk semua proyek, maka lakukan ini
1. Close Android studio
2. Go to the file C://Users/your username/
3. Delete files .gradle , .cache ,.android, .AndroidStudio3.5
Dineshkumar Niet
sumber
1

Solusi ini tidak membantu saya dengan masalah yang sama di Android Studio 0.5.8.

Saya menggambarkan jawaban saya untuk pertanyaan yang sama (saya kira): https://stackoverflow.com/a/23891829/534698 Saya baru saja menghapus direktori ~ / .AndroidStudioPreview (di Ubuntu). Saya melewatkan semua pengaturan Android Studio saya tetapi berhasil.

DmitryDzz
sumber
ini adalah satu-satunya hal yang berhasil untuk saya. Android Studio 1.0.2
Bobby Hargett
1

Dalam kasus saya, untuk beberapa alasan, Versi Plugin Android tidak disetel. Saya memang mencoba membersihkan cache dan menghapus .gradle dan .idea juga, tetapi tidak berhasil dan setelah akhirnya berkeliaran berjam-jam, saya menemukan ini.

File> Struktur Proyek

Jainam Jhaveri
sumber
0

Saya memiliki masalah yang sama sebelumnya, membatalkan cache dan memulai ulang tidak menyelesaikannya. Saya baru saja melakukan Gradle Sync dan semuanya bekerja dengan baik.

Mina Samy
sumber
0

Memecahkan masalah dengan membersihkan proyek Build->Clean Project

Ganesh P
sumber
0

Bagi saya, saya merujuk tabung di perpustakaan modul. Itu tidak bisa menyelesaikan simbol dalam toples. Jadi saya menemukan solusi untuk situasi saya. Gunakan providedjalannya.

provided fileTree(include: ['xxx.jar'], dir: '../moduleX/libs')
Victor Choy
sumber
0

Saya menyelesaikan masalah yang sama dengan menggunakan langkah-langkah berikut:

  1. perbarui versi pustaka secara bertahap ke sembarang nomor acak, mis .: lib_1.0.0 -> lib_1.0.0.0

  2. sinkronisasi bertahap

  3. sinkronisasi menunjukkan kesalahan

  4. kembalikan perubahan versi lib_1.0.0.0 -> lib_1.0.0

  5. sinkronisasi bertahap

Buka file java dengan impor untuk melihat kesalahan dihapus.

Deepak PK
sumber
0

Tidak ada solusi yang bekerja untuk saya .. Saya terpaksa uninstall java dari komputer saya, menjalankan android studio untuk memastikan ia mendeteksi uninstall dan kemudian menginstalnya lagi.

Jika Anda memilih untuk pergi dengan cara ini, cobalah mengubah jalur jdk dan mengatur jalur baru dalam struktur proyek. Jika itu tidak berhasil, silakan dan uninstall java .

Kai Lean
sumber
0

Saya hanya membuat Proyek Bersih dan Membangun Kembali Proyek sebelum memulai ulang Android Studio, itu menyelesaikan masalah saya. Mungkin Android Studio sebenarnya tidak memperbarui referensi di antarmuka

Abner Hernandez
sumber