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:+" />