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'

также добавьте плагин в приложение для сборки 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

23 ответа

Решение

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

 defaultConfig {
    multiDexEnabled true
}

РЕДАКТИРОВАТЬ:

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

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

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

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

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

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

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

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'

Я просто должен был очистить свой проект, а затем он успешно построен.

Эта ошибка стала появляться для меня, когда я добавил несколько новых методов в свой проект. Я знал, что я не достиг предела в 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 Cache и перезапуск 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, может привести к проблемам с производительностью в системах с меньшим объемом памяти.

Я также сталкивался с подобной проблемой в 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
}

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

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

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

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

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

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

В моем случае возникла исключительная ситуация, потому что все расширения службы Google Play не имеют ту же версию, как указано ниже.

 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'

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

Я настроил мультидекс

В 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

После этого в класс Application вам также необходимо добавить 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 гигабайта.

Сначала удалите промежуточные файлы СВОЙ ПРИЛОЖЕНИЕ ПРИЛОЖЕНИЯ \app\build\ промежуточный пункт ИЛИ Очистите ваш проект, а затем пересоберите.

Thent добавить

multiDexEnabled true

т.е.

defaultConfig {
        multiDexEnabled true
}

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

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

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

Полезный ответ, если все вышеперечисленное не сработало для вас.

Перейдите в файл Gradle вашего приложения,

Убедитесь, что все версии зависимостей упоминаются с правильным кодом версии, а не с любым относительным значением, например (com.example.demo:+)

Ранее - реализация com.google.api-client:google-api-client-android:+

После - реализация com.google.api-client:google-api-client-android:1.30.0

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

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

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

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

Просто перейдите в "Сборка" - "Редактировать типы сборки" - "Вкладка свойств" - "Версия типа сборки" и вернитесь к версии 23.0.1. Нажмите ОК Это работает для Android Studio 1.5. Это сработало для меня.

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

defaultConfig {
    multiDexEnabled true
}

в local.properties,

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

упомянуть зависимость:

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

Очистить и восстановить.

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

Если разные зависимости имеют один и тот же jar-файл, это также приводит к ошибке сборки.

Например:

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

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

Если "Мгновенный запуск" включен, просто отключите его.

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

Это случилось со мной из-за утечки памяти в Eclipse. Я должен был перезагрузить компьютер.

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

defaultConfig {
        multiDexEnabled true
}

Для простоты реализации входа в Google зайдите в систему: войдите в систему в Google Android.

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

dexOptions {
        javaMaxHeapSize "4g" 
    }

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

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

<framework src="com.android.support:support-v4:+" />
Другие вопросы по тегам