Pertanyaan Android Studio Desugar: Transform Classes dengan Desugar untuk Debug gagal


Proyek Android Studio saya baru-baru ini berhenti berfungsi dengan baik. Saya tidak tahu apa yang menyebabkan masalah ini.

Inilah yang saya coba

  • Saya mencoba membangun proyek saya dengan versi Android Studio yang berbeda, yaitu versi Kanary channel yang stabil dan berbeda, tidak ada perubahan
  • saya mengubah versi SDK sekitar. Proyek saya dibangun dengan benar dengan SDK 26, tetapi sekarang tidak, juga tidak dengan SDK 27
  • saya bertukar alat dan versi Gradle di sekitar, proyek saya dibangun dengan baik dengan plugin Gradle 3.1.0-alpha2 dan membuat versi alat 26.0.2. Saya mencoba banyak
  • Saya menggunakan "Proyek Bersih", "Cache Tidak Valid"... berfungsi di Android Studio kali terhitung
  • Saya menghapus folder build saya
  • Saya mengaktifkan Proguard dan mematikannya
  • Saya mencoba memperbaiki masalah perpustakaan yang mungkin, tetapi semua itu tidak membantu

Saya pikir saya benar-benar mengubah semuanya kembali ke pengaturan yang berhasil saya gunakan sebelumnya dan saya proyek lain dengan pengaturan serupa bangun saja dengan baik.

Kode kesalahan lengkap:

Error:java.lang.RuntimeException: com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: Error while executing java process with main class com.google.devtools.build.android.desugar.Desugar with arguments {@...\app\build\intermediates\tmp\desugar_args165654356027684238}

Error:com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: Error while executing java process with main class com.google.devtools.build.android.desugar.Desugar with arguments {@...\app\build\intermediates\tmp\desugar_args165654356027684238}
Error:java.lang.RuntimeException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: Error while executing java process with main class com.google.devtools.build.android.desugar.Desugar with arguments {@...\app\build\intermediates\tmp\desugar_args165654356027684238}
Error:java.lang.RuntimeException: com.android.ide.common.process.ProcessException: Error while executing java process with main class com.google.devtools.build.android.desugar.Desugar with arguments {@...\app\build\intermediates\tmp\desugar_args165654356027684238}
Error:com.android.ide.common.process.ProcessException: Error while executing java process with main class com.google.devtools.build.android.desugar.Desugar with arguments {@...\app\build\intermediates\tmp\desugar_args165654356027684238}

Error:org.gradle.process.internal.ExecException: Process 'command '...\jre\bin\java.exe'' finished with non-zero exit value 1

Deskripsi masalah

Saya tidak tahu apa yang bisa (memiliki) sebab (d) masalah ini dan saya tidak tahu apa yang harus dicoba berikutnya, yang merupakan alasan mengapa saya meminta bantuan Anda. Saya harap ada yang punya bantuan lain selain apa yang bisa saya temukan.

Saya memberi tag Firebase karena saya berpikir bahwa perpustakaan mungkin menjadi titik penting dari masalah saya, sekarang masalahnya adalah bahwa itu tidak akan pernah menjelaskan berhenti mendadak. saya menggunakan FirebaseUI dalam aplikasi saya dan mencoba dependensi kerja lama, tetapi juga meningkatkan Firebase dan kemudian menggunakan panduan ini agar cocok dengan pustaka UI yang kedaluwarsa. saya juga dihapus FirebaseUI, tetapi ini tidak membuat build yang sukses.


5
2017-11-14 18:00


asal


Jawaban:


Bagi saya, itu adalah versi dari pustaka Leanplum yang saya gunakan - meskipun saya tidak dapat memunculkan kesalahan melalui gradle, saya merasa cukup kesal untuk menemukan Sumber Desugar dalam bazel, membangunnya, dan kemudian salin argumen baris perintah dari build gradle yang gagal, yang membawa saya ke toples Leanplum, yang tampaknya memiliki tabrakan nama antara dua elemen berbeda yang dikaburkan:

Exception in thread "main" java.lang.IllegalStateException: Already recorded as class: com/leanplum/a/x
    at com.google.common.base.Preconditions.checkState(Preconditions.java:582)
    at com.google.devtools.build.android.desugar.ClassVsInterface.addKnownInterfaces(ClassVsInterface.java:46)
    at com.google.devtools.build.android.desugar.InterfaceDesugaring.visit(InterfaceDesugaring.java:96)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:621)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:500)
    at com.google.devtools.build.android.desugar.Desugar.desugarClassesInInput(Desugar.java:477)
    at com.google.devtools.build.android.desugar.Desugar.desugarOneInput(Desugar.java:361)
    at com.google.devtools.build.android.desugar.Desugar.desugar(Desugar.java:314)
    at com.google.devtools.build.android.desugar.Desugar.main(Desugar.java:711)

Saya pikir ini bekerja untuk saya karena versi Desugar yang lebih baru memiliki pelaporan kesalahan yang lebih baik ... Jadi jika seperti saya Anda tidak dapat mengetahui apa yang terjadi, mungkin saja

  • memasang bazel (Saya menggunakan homebrew di mac)
  • kemudian membangun Desugar versi Anda sendiri (perintah yang saya gunakan dari akar repo bazel adalah bazel build //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar),
  • lalu salin & tempel argumen CLI dari gradle build yang gagal akan mengarah pada insight. (perintah akhirnya terlihat seperti ini: path/to/your/built/Desugar --verbose --input /Users/you/yourApp/app/build/intermediates/transforms/stackFramesFixer/envDev/debug/109.jar .... --desugar_try_with_resources_if_needed --desugar_try_with_resources_omit_runtime_classes)

Saya mengharapkan harus menambahkan kesalahan penebangan saya sendiri ke Desugar untuk menangkap ini, tetapi cukup bahagia itu tidak perlu.


9
2018-01-03 06:32



Saya memperbaikinya (dan masalah terkait Kotlin lainnya, dengan hanya menghapus semua Android dan Gradle yang terkait dari komputer saya dan kemudian memasang semuanya dari awal. Seluruh proses adalah penyiksaan, jadi saya masih menginginkan solusi cepat. Saya tidak ingin menghabiskan berjam-jam untuk ini lagi :)


1
2017-11-15 16:49



Dalam kasus saya itu adalah versi java yang menyebabkan masalah ini. Kesalahan mulai muncul ketika saya menambahkan sebuah toples dalam libs dan saya harus mengetahui bahwa SDK tidak kompatibel dengan versi java 1.8 kami. Dipecahkan dengan jar diperbarui SDK dengan java 8.


1
2017-07-18 10:08



Apakah Anda mencoba menggunakan dan menghapus cache build yang diperkenalkan pada AS 2.3?

misalnya, properti gradle.properties saya

android.enableBuildCache=true
android.buildCacheDir=/tmp/android-build-cache

dan saya harus membersihkannya /tmp/android-build-cache untuk memperbaiki kesalahan Desugar yang sama yang saya dapatkan.


0
2017-11-15 08:49



Dalam kasus kami itu tidak cukup ram di mesin build.


0
2018-02-05 14:55



Saya baru-baru ini memiliki masalah yang sama dengan AS 3.1.4 dan Gradle 4.4. Saya tidak mengerti dengan sempurna penyebab masalah ini tetapi bagi saya tampaknya terkait dengan kompilasi modul kustom.

Saya memecahkannya mengimpor modul kustom saya sebagai ketergantungan jar bukannya "kompilasi" itu.

Singkatnya:

  • Di dalam Anda app.gradle file dan komentar baris seperti: proyek implementasi (jalur: ': XXX')
  • Buka aplikasi->Buka Pengaturan Modul->Ketergantungan dan tambahkan Jar Anda sebagai ketergantungan modul

0
2017-08-12 15:30