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" включен, затем просто отключите его.