Com.android.build.transform.api.TransformException

Я пытаюсь интегрировать вход google, в моем приложении я добавил эти библиотеки:

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

также добавьте это в конструкцию проекта gradle:

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

также добавьте плагин в приложение build gradle:

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

затем добавьте требуемые разрешения но когда я пытаюсь запустить свое приложение, получил эту ошибку:

    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

Ответ 1

Попробуйте добавить multiDexEnabled true в ваше приложение build.gradle.

 defaultConfig {
    multiDexEnabled true
}

EDIT:

Сначала попробуйте "Стив" ответить. В случае, если это происходит часто или первый шаг не помог multiDexEnabled, может помочь. Для тех, кто любит копать глубже, есть пара похожих вопросов (с большим количеством ответов):

: app: dexDebug ExecException завершен с ненулевым значением выхода 2

Ошибка: выполнение выполнено для задачи ': app: dexDebug'. com.android.ide.common.process.ProcessException

Ответ 2

Еще одна вещь, на которую нужно обратить внимание, заключается в том, что вы не используете

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

Это будет импортировать ВСЕ сервисы воспроизведения, и это займет всего лишь немного, чем мир приветствия, чтобы превысить предел метода 65535 для одного дескриптора APK.

Всегда указывайте только нужные вам службы, например:

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'

Ответ 3

Мне просто пришлось очистить свой проект, а потом он успешно сработал.

Ответ 4

Эта ошибка начала появляться для меня, когда я добавил некоторые новые методы в свой проект. Я знал, что я нигде не приближаюсь к пределу метода 65k и не хочу включать поддержку multiDex для своего проекта, если бы мог помочь.

Я разрешил его, увеличив объем памяти, доступный для задачи :app:transformClassesForDexForDebug. Я сделал это, указав javaMaxHeapSize в gradle.build.

gradle.build

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

Я пробовал это после того, как не имел успеха с другими распространенными решениями этой проблемы:

  • Запуск проекта clean
  • Вручную удалять каталоги /app/build и /build из моего проекта
  • Недействительный Gradle Кэш и перезапуск Android Studio

Ошибка

Ошибка: выполнение выполнено для задачи > ': app: transformClassesWithDexForDebug'. com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: команда процесса '/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java'" завершена с ненулевым значением выхода 1

Примечание. Увеличение памяти, доступной для задачи DEX, может привести к проблемам с производительностью в системах с более низкой памятью - ссылка.

Ответ 5

Я также столкнулся с аналогичной проблемой в Android Studio 1.5.1 и gradle 1.5.0. Мне просто нужно удалить ненужные библиотеки из зависимостей, которые могут быть автоматически добавлены в моем файле build.gradle приложения. Один из них: compile 'com.google.android.gms: play-services: 8.4.0'. Поэтому для лучших практик старайтесь включать только определенную библиотеку игровых сервисов, например, для рекламы,

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

Хотя

defaultConfig {
    multiDexEnabled true
}

это также решит проблему, но предоставляет множество примечаний в консоли gradle, что затрудняет поиск других реальных проблем во время сборки

Ответ 6

вы можете увидеть документацию 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>

Ответ 7

Я использую AS 1.5.1 и столкнулся с той же проблемой. Но просто очистка проекта просто не будет, поэтому я попробовал что-то.

  • чистый проект
  • перезапустить AS
  • Проект синхронизации

Это со мной работало, поэтому я надеюсь, что это поможет.

Ответ 8

В моем случае измените buildToolsVersion с "24" на "23.0.2", решите проблему.

Ответ 9

В моем случае Исключение произошло из-за того, что все расширения службы google не имеют такой же версии, как показано ниже.

 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'

Он работал, когда я изменил это на

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'

Ответ 10

Я решил его со следующим:

Я настроил multidex

В build.gradle вам нужно добавить следующий.

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'
...
}

Добавить следующий в local.properties

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

После этого в класс приложения вам также нужно добавить Multidex.

 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);
   }
}

Не забудьте добавить код строки в Manifest.xml

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

Чтобы этого было достаточно для устранения ошибки: Выполнение не выполнено для задачи ': app: transformClassesWithDexForDebug. Хорошо проверьте в build.gradle с помощью javaMaxHeapSize "2g", а local.properties org.gradle.jvmargs = -Xmx2048m - 2 гигабайта.

Ответ 11

У меня была такая же проблема, когда я вернулся к старой версии через git, и эта версия имела предыдущую .jar-библиотеку одного стороннего api, и почему-то оказалось, что оба jar одного и того же sdk, просто разные версии были в папке/libs.

Ответ 12

Сначала удалите файлы промежуточных файлов ВАША ПАРАМЕТРЫ APP\app\build\intermediates ИЛИ Очистите проект, а затем перестройте.

Затем добавьте

multiDexEnabled true

то есть.

defaultConfig {
        multiDexEnabled true
}

Это работает для меня

Ответ 13

Я решил эту проблему путем изменения, чтобы использовать последние buildToolsVersion

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

Ответ 14

Если вы используете последнюю версию gradle, т.е. classpath 'com.android.tools.build:gradle:1.5.0' and classpath 'com.google.gms:google-services:1.4.0-beta3', попробуйте обновить последний репозиторий поддержки от менеджера SDK и перестроить весь проект.

Ответ 15

Если вам нужно добавить эту ссылку для плагина cordova, добавьте следующую строку в ваш файл plugin.xml.

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

Ответ 16

Если разные зависимости имеют один и тот же банд, также вызывают эту ошибку сборки.

Например:

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

Если "library1" и "library2" имеют одну и ту же банку с именем xxx.jar, это приведет к такой ошибке.

Ответ 17

Это случилось со мной из-за утечки памяти Eclipse. Мне пришлось перезагрузить компьютер.

Ответ 18

Я изменил пару png и номер сборки в gradle, и теперь я получаю это. Никакой очистки и перезапуска не помогло. Отключение Instant Run исправил его для меня. YMMV

Ответ 19

У меня был такой же вариант, и как только я отключил Instant run, он отлично работал на моем устройстве API16, но на устройстве API24 он отлично работал с Instant run.

Надеюсь, что это поможет кому-то, имеющему ту же проблему

Ответ 20

Просто перейдите в Build - Edit Build Types - вкладка Properties - Build Type Version и перейдите к версии 23.0.1. Нажмите ОК. Это работает для студии android 1.5. Это сработало для меня.

Ответ 21

ответ на запись находится в gradle. defaultConfig {       multiDexEnabled true } то имя приложения в манифесте Android: name= "android.support.multidex.MultiDexApplication" пожелайте, чтобы этот ответ был доволен кем-то.

Ответ 22

этот код решил проблему

defaultConfig {
        multiDexEnabled true
}

Самый простой способ реализовать вход в google: google sign android

Также попробуйте

dexOptions {
        javaMaxHeapSize "4g" 
    }

Также поддерживайте одинаковый номер версии для разных сервисов.

Ответ 23

Я решил эту проблему, добавив: В build.gradle:

defaultConfig {
    multiDexEnabled true
}

в local.properties,

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

укажите зависимость:

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

Очистить и перестроить.

Ответ 24

Incase "Instant Run" включен, затем просто отключите его.