com.android.build.transform.api.TransformException


158

Saya mencoba mengintegrasikan masuk Google, di aplikasi saya, saya menambahkan perpustakaan ini:

compile 'com.google.android.gms:play-services-identity:8.1.0'
compile 'com.google.android.gms:play-services-plus:8.1.0'

Juga tambahkan ini ke proyek build gradle:

classpath 'com.google.gms:google-services:1.4.0-beta3'

Tambahkan juga plugin ke aplikasi build gradle:

apply plugin: 'com.google.gms.google-services'

lalu tambahkan izin yang diperlukan tetapi ketika saya mencoba menjalankan aplikasi saya, menerima kesalahan ini:

    Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
    com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: 
    org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0\bin\java.exe'' finished with non-zero exit value 2

Jawaban:


312

Coba tambahkan multiDexEnabled trueke file build.gradle aplikasi Anda .

 defaultConfig {
    multiDexEnabled true
}

EDIT:

Coba dulu jawaban Steve . Jika itu sering terjadi atau langkah pertama tidak membantu multiDexEnabledmungkin membantu. Bagi mereka yang suka menggali lebih dalam di sini ada beberapa masalah serupa (dengan lebih banyak jawaban):

: app: dexDebug ExecException selesai dengan nilai keluar bukan nol 2

Kesalahan: Eksekusi gagal untuk tugas ': app: dexDebug'. com.android.ide.common.process.ProcessException


3
Tidak bekerja untuk saya. Jawaban Steve - Pembersihan melakukan trik. Saya baru saja memutakhirkan ke AS1.5 Pratinjau
Scott

6
Agar adil, Anda harus selalu memeriksa apakah suatu masalah dapat diselesaikan dengan membersihkan. Saya yakin ini akan membantu mereka yang tidak melakukan pembersihan.
JuliusScript

kedua hal ini tidak membantu saya - tetapi memulai kembali AS akhirnya berhasil :)
Maciej Boguta

tidak ada yang membantu saya, tetapi mulai bekerja setelah saya memulai kembali AS
Maciej Boguta

1
Saya juga menyarankan memeriksa jawaban A Grandt, di bawah ini ( stackoverflow.com/a/33690032/1617737 ) sebelum Anda terjun dengan solusi ini.
larangan geoengineering

146

Hal lain yang harus diperhatikan, adalah Anda tidak menggunakannya

compile 'com.google.android.gms:play-services:8.3.0'

Itu akan mengimpor SEMUA layanan bermain, dan itu hanya akan membutuhkan sedikit lebih dari dunia halo untuk melampaui batas metode 65535 dari satu APK dex.

Selalu tentukan hanya layanan yang Anda butuhkan, misalnya:

compile 'com.google.android.gms:play-services-identity:8.3.0'
compile 'com.google.android.gms:play-services-plus:8.3.0'
compile 'com.google.android.gms:play-services-gcm:8.3.0'

10
Kamu yang terbaik! Ini menyelesaikan masalah saya. Membangun kembali tidak membantu dalam kasus saya seperti yang disebutkan dalam banyak solusi. Seperti yang Anda sebutkan perpustakaan Google Play Services memiliki banyak subkomponen dan mereka harus diimpor seperti yang Anda katakan - satu per satu. Sekali lagi terima kasih banyak!
Ivan Caravanio

2
Saya memiliki masalah ini dalam beberapa hari terakhir. Saya pikir saya hanya memilih apa yang saya butuhkan. Tapi, rendah dan lihatlah, setelah berjam-jam mencari saya mengimpor semua layanan bermain ketika yang saya inginkan adalah layanan bermain-iklan. Pasti memeriksa dependensi gradle Anda, orang!
MCLLC

@ A.Grandt dapatkah Anda menambahkan tautan yang diberikan Ivan ke dalam jawaban Anda? Ini berisi daftar nama semua subkomponen dan itu harus menjadi bagian dari jawabannya, karena itu adalah langkah selanjutnya yang harus diambil setiap orang.
Murmel

137

Saya hanya perlu Bersihkan proyek saya dan kemudian berhasil dibangun setelahnya.


4
Terima kasih! Ini bekerja dengan sempurna! Jawaban yang diterima akan aneh karena proyek saya jauh dari mencapai batas metode 65K (yang akan membutuhkan multidex).
Louis CAD

4
Yap, membersihkan adalah cara untuk pergi. AS 1.4
Felipe Caldas

Jika Anda memiliki modul pustaka, maka bersihkan semua modul di seluruh proyek agar berfungsi. Hanya membersihkan modul individual tidak bekerja untuk saya. Bersihkan proyek SELURUH.
Akh

Adakah yang bisa memberitahu saya bagaimana cara membersihkan proyek? Saya sudah mencoba banyak "kombinasi" dan tidak ada yang berhasil. Saya melihat semua orang mengatakan "bersih", tetapi tidak tahu caranya. Terima kasih.
Alberto Rubio

@AlbertoRubio, di bawah Bangun> Bersihkan Proyek di bilah alat AS.
Chantell Osejo

23

Kesalahan ini mulai muncul untuk saya ketika saya menambahkan beberapa metode baru ke proyek saya. Saya tahu bahwa saya tidak berada di dekat batas metode 65k dan tidak ingin mengaktifkan dukungan multiDex untuk proyek saya jika saya dapat membantu.

Saya mengatasinya dengan meningkatkan memori yang tersedia untuk :app:transformClassesForDexForDebugtugas itu. Saya melakukan ini dengan menentukan javaMaxHeapSize di gradle.build.

gradle.build

android {
    ...
    dexOptions {
        javaMaxHeapSize "4g" //specify the heap size for the dex process
    }
}

Saya mencoba ini setelah tidak berhasil dengan solusi umum lainnya untuk masalah ini:

  • Menjalankan proyek clean
  • Menghapus secara manual /app/builddan /builddirektori dari proyek saya
  • Memvalidasi Cache Gradle dan memulai ulang Android Studio

Kesalahan

Kesalahan: Eksekusi gagal untuk tugas> ': app: transformClassesWithDexForDebug'. com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.Exeception: Proses 'command' /Library/Java/JavaVirtualMachines/jdk1.8.0_45. jdk / Contents / Home / bin / java '' selesai dengan nilai keluar bukan nol 1

Catatan: menambah memori yang tersedia untuk tugas DEX dapat menyebabkan masalah kinerja pada sistem dengan tautan memori yang lebih rendah .


Ini bekerja untuk saya, hanya untuk menentukan ukuran tumpukan maksimum akan menyelesaikan masalah, terima kasih Maurice
Zeyad Assem

8

Saya juga menghadapi masalah serupa di Android Studio 1.5.1 dan gradle 1.5.0. Saya hanya perlu menghapus pustaka yang tidak diinginkan dari dependensi yang dapat secara otomatis ditambahkan dalam file build.gradle aplikasi saya. Salah satunya adalah: kompilasi 'com.google.android.gms: play-services: 8.4.0'. Jadi untuk praktik terbaik, coba sertakan hanya perpustakaan layanan putar khusus seperti hanya untuk iklan

dependencies {
    compile 'com.google.android.gms:play-services-ads:8.4.0'
}

Meskipun

defaultConfig {
    multiDexEnabled true
}

ini juga akan menyelesaikan masalah, tetapi menyediakan banyak Notes di konsol gradle, membuatnya membingungkan untuk menemukan masalah nyata lainnya selama pembuatan


Mempersempit penggunaan google api saya untuk hanya memutar-layanan-peta berhasil. Berikut adalah rincian resmi Google dari berbagai komponen dalam API layanan-putar: developers.google.com/android/guides/…
jperl

4

Anda dapat melihat dokumentasi Android

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 21
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.android.support:multidex:1.0.0'
}

Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>

3

Saya menggunakan AS 1.5.1 dan mengalami masalah yang sama. Tetapi hanya membersihkan proyek saja tidak akan dilakukan, jadi saya mencoba sesuatu.

  • proyek bersih
  • restart AS
  • Sinkronkan Proyek

Ini bekerja dengan saya, jadi saya harap ini membantu.


3
Ini tidak ada gunanya untuk proyek yang telah melampaui batas metode Dex 64k.
IgorGanapolsky

3

Pada kasus saya, ubah buildToolsVersion dari "24" menjadi "23.0.2", selesaikan masalahnya.


2

Dalam kasus saya Pengecualian terjadi karena semua ekstensi layanan google play tidak dengan versi yang sama seperti berikut

 compile 'com.google.android.gms:play-services-plus:9.8.0'
 compile 'com.google.android.gms:play-services-appinvite:9.8.0'
 compile 'com.google.android.gms:play-services-analytics:8.3.0'

Ini berhasil ketika saya mengubah ini menjadi

compile 'com.google.android.gms:play-services-plus:9.8.0'
 compile 'com.google.android.gms:play-services-appinvite:9.8.0'
 compile 'com.google.android.gms:play-services-analytics:9.8.0'

1
Saya tidak melihat semua jawaban dan saya tidak melihat jawaban Anda, jadi ... Saya menemukan bahwa ini adalah kasus saya sekitar satu jam kemudian: /
denispyr

2

Saya mengatasinya dengan yang berikut:

Saya mengkonfigurasi multidex

Di build.gradle Anda perlu menambahkan yang berikutnya.

android {
...
   defaultConfig {
       ...
       // Enabling multidex support.
       multiDexEnabled true
       ...
   }
   dexOptions {
      incremental true
      maxProcessCount 4 // this is the default value
      javaMaxHeapSize "2g"
   }
...
}
dependencies {
...
   compile 'com.android.support:multidex:1.0.1'
...
}

Tambahkan yang berikutnya di local.properties

org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

Setelah itu ke dalam kelas Aplikasi Anda perlu menambahkan Multidex juga.

 public class MyApplication extends MultiDexApplication {

   @Override
   public void onCreate() {
       super.onCreate();
       //mas codigo
   }

   @Override
   protected void attachBaseContext(Context base) {
       super.attachBaseContext(base);
       MultiDex.install(this);
   }
}

Jangan lupa tambahkan kode baris ke Manifest.xml

<application
    ...
    android:name=".MyApplication"
    ...
/>

Itu saja dengan ini sudah cukup untuk menyelesaikan bug: Eksekusi gagal untuk tugas ': app: transformClassesWithDexForDebug. Periksa dengan sangat baik ke build.gradle dengan javaMaxHeapSize "2g" dan local.properties org.gradle.jvmargs = -Xmx2048m berukuran 2 gigabyte.


2
Silakan kirim hanya dalam bahasa Inggris. Ini sepertinya jawaban yang bagus, akan memalukan untuk dihapus karena itu bukan dalam bahasa Inggris.
Tunaki

1

Saya memiliki masalah yang sama ketika saya memutar kembali ke versi lama via git, dan versi itu memiliki perpustakaan .jar sebelumnya dari satu api pihak ke-3, dan untuk beberapa alasan ternyata kedua jar dari sdk yang sama, hanya versi yang berbeda ada di folder / libs .


1

Pertama Hapus file perantara FOLDER APLIKASI ANDA \ app \ build \ intermediates ATAU Bersihkan proyek Anda dan kemudian buat kembali.

Lalu tambahkan

multiDexEnabled true

yaitu

defaultConfig {
        multiDexEnabled true
}

Ini bekerja untuk saya


1

Saya memecahkan masalah ini dengan mengubah menggunakan terbaru buildToolsVersion

android {
    //...
    buildToolsVersion '26.0.2' // change from '23.0.2'
    //...
}

1

Jawaban yang bermanfaat jika semua hal di atas tidak berhasil untuk Anda.

Buka file gradle aplikasi Anda,

Periksa semua versi dependensi disebutkan dengan kode versi yang tepat daripada nilai relatif seperti (com.example.demo: +)

Sebelumnya - implementasi 'com.google.api-client: google-api-client-android: +'

Setelah - implementasi 'com.google.api-client: google-api-client-android: 1.30.0'


0

Jika Anda menggunakan versi gradle terbaru classpath 'com.android.tools.build:gradle:1.5.0' and classpath 'com.google.gms:google-services:1.4.0-beta3', maka cobalah memperbarui respositori dukungan terbaru dari manajer SDK dan membangun kembali seluruh proyek.


0

Jika Anda perlu menambahkan referensi ini untuk plugin cordova tambahkan baris berikutnya di file plugin.xml Anda.

<framework src="com.android.support:support-v4:+" />

0

Jika dependensi yang berbeda memiliki stoples yang sama juga menyebabkan kesalahan build ini.

Sebagai contoh:

compile('com.a.b:library1');
compile('com.c.d:library2');

Jika "library1" dan "library2" memiliki nama yang sama xxx.jar, ini akan membuat kesalahan.


0

Itu terjadi pada saya karena kebocoran memori Eclipse. Saya harus me-restart komputer saya.


0

Saya mengubah beberapa pngs dan nomor build di gradle dan sekarang saya dapatkan ini. Tidak ada jumlah pembersihan dan restart membantu. Menonaktifkan Instant Run memperbaikinya untuk saya. YMMV


0

Saya memiliki opsi yang sama dan segera setelah saya mematikan menjalankan Instan, itu bekerja dengan baik pada perangkat API16 saya, tetapi pada perangkat API24 itu bekerja dengan baik dengan menjalankan Instan.

Semoga ini bisa membantu seseorang yang memiliki masalah yang sama


0

Cukup buka Bangun - Edit Bangun Jenis - Tab Properti - Bangun Jenis Versi dan turunkan ke ver 23.0.1. Klik ok. Ini berfungsi untuk android studio 1.5. Ini berhasil untuk saya.


0

jawaban tulis dalam gradle put defaultConfig {multiDexEnabled true} maka nama aplikasi di manifes android: name = "android.support.multidex.MultiDexApplication" harap jawaban ini bagus untuk seseorang


0

kode ini memecahkan masalah

defaultConfig {
        multiDexEnabled true
}

Untuk cara termudah untuk menerapkan kunjungan masuk google : masuk google di android

Juga coba

dexOptions {
        javaMaxHeapSize "4g" 
    }

Juga simpan nomor versi yang sama untuk layanan yang berbeda.


0

Saya memecahkan masalah ini dengan menambahkan: Di build.gradle:

defaultConfig {
    multiDexEnabled true
}

di local.properties,

org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m

sebutkan ketergantungan:

compile 'com.android.support:multidex:1.0.1'

Bersihkan dan Bangun Kembali.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.