com.андроид.строить.преобразиться.прикладной программный интерфейс.TransformException
Я пытаюсь интегрировать google войти, в моем приложении, я добавил эти библиотеки:
compile 'com.google.android.gms:play-services-identity:8.1.0'
compile 'com.google.android.gms:play-services-plus:8.1.0'
также добавьте это в проект build 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 FilesJavajdk1.8.0binjava.exe'' finished with non-zero exit value 2
23 ответа:
попробуйте добавить
multiDexEnabled true
приложения построить.gradle.defaultConfig { multiDexEnabled true }
EDIT:
попробуйте Стива ответ первый. В случае, если это происходит часто или первый шаг не помог
multiDexEnabled
может помочь. Для тех, кто любит копать глубже, вот несколько подобных вопросов (с ответами):: app:Dexdebug ExecException закончил с ненулевым значением выхода 2
еще одна вещь, чтобы следить за тем, что вы не используете
compile 'com.google.android.gms:play-services:8.3.0'
это импортирует все сервисы play, и потребуется всего лишь немного больше, чем hello world, чтобы превысить предел метода 65535 одного DEX 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'
эта ошибка начала появляться, когда я добавил некоторые новые методы для моего проекта. Я знал, что я нигде не был близок к пределу метода 65k и не хотел включать поддержку multiDex для моего проекта, если бы я мог помочь ему.
я решил это, увеличив доступную память к
:app:transformClassesForDexForDebug
задач. Я сделал это, указав javaMaxHeapSize ingradle.build
.gradle.строй
android { ... dexOptions { javaMaxHeapSize "4g" //specify the heap size for the dex process } }
я попробовал это после того, как не имел успеха с другие распространенные решения этой проблемы:
- реализует проект
clean
- вручную удаления
/app/build
и/build
каталоги из моего проекта- аннулирование кэша Gradle и перезапуск Android Studio
ошибка: не удалось выполнить задачу > ': app: transformClassesWithDexForDebug'. com.андроид.строить.прикладной программный интерфейс.преобразиться.TransformException: com.андроид.интегрированная среда разработки.общий.процесс.ProcessException: орг.градля.процесс.внутренний.ExecException: команда процесса '/Library / Java/JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Home / bin / java" закончено с ненулевым значением выхода 1
Примечание: увеличение объема памяти, доступной для задачи DEX, может вызвать проблемы с производительностью в системах с меньшим объемом памяти -ссылке.
Я также столкнулся с подобной проблемой в Android Studio 1.5.1 и gradle 1.5.0. Мне просто нужно удалить ненужные библиотеки из зависимостей, которые могут быть автоматически добавлены в сборку моего приложения.файл gradle. Один из них был : compile 'com.гуглить.андроид.gms: play-услуги: 8.4.0'. Поэтому для лучших практик старайтесь включать только определенную библиотеку play services, например, для объявлений включают только
dependencies { compile 'com.google.android.gms:play-services-ads:8.4.0' }
хотя
defaultConfig { multiDexEnabled true }
это также решит проблему, но предоставляет много заметок в gradle console, что делает его запутанным, чтобы найти другие реальные проблемы во время сборки
вы можете увидеть документацию 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' }
Манифест.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>
Я использую как 1.5.1 и столкнулся с той же проблемой. Но просто очистка проекта просто не будет делать, поэтому я попробовал что-то.
- очистить проект
- перезагрузка как
- Синхронизировать Проект
Это сработало со мной, поэтому я надеюсь, что это помогает.
в моем случае исключение произошло, потому что все расширения службы 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'
Я решил следующее:
Я настроил 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' ... }
добавить следующий в местных.свойства
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); } }
не забудьте добавить код строки в манифест.xml
<application ... android:name=".MyApplication" ... />
вот именно с этим было достаточно для устранения бага: Не удалось выполнить задачу ': app: transformClassesWithDexForDebug. Проверьте очень хорошо в сборке.gradle с javaMaxHeapSize "2g" и локальным.свойства орг.градля.jvmargs= - Xmx2048m имеют 2 гигабайта.
У меня была такая же проблема, когда я вернулся к старой версии через git, и эта версия была предыдущей .библиотека jar одного стороннего api, и почему-то оказалось, что оба jar одного и того же sdk, просто разные версии были в папке /libs.
сначала удалить промежуточные файлы Папка вашего приложения\app\build\intermediates ИЛИ Очистите свой проект, а затем перестроить.
Thent добавить
multiDexEnabled true
т. е.
defaultConfig { multiDexEnabled true }
это работа для меня
Я решил эту проблему путем изменения использовать последний
buildToolsVersion
android { //... buildToolsVersion '26.0.2' // change from '23.0.2' //... }
Если вы используете последнюю версию gradle ie
classpath 'com.android.tools.build:gradle:1.5.0' and classpath 'com.google.gms:google-services:1.4.0-beta3'
, затем попробуйте обновить последнюю поддержку respository из диспетчера SDK и перестроить весь проект.
Если вам нужно добавить эту ссылку для плагина cordova, добавьте следующую строку в свой плагин.XML-файл.
<framework src="com.android.support:support-v4:+" />
Если разные зависимости имеют один и тот же jar также вызывают эту ошибку сборки.
например:
compile('com.a.b:library1'); compile('com.c.d:library2');
Если " library1 "и" library2 " имеет одну и ту же банку с именем
xxx.jar
, это сделает такую ошибку.
Я изменил пару PNG и номер сборки в gradle, и теперь я получаю это. Никакое количество очистки и перезапуска не помогло. Отключение мгновенного запуска исправило это для меня. YMMV
У меня был тот же вариант, и как только я отключил мгновенный запуск, он отлично работал на моем устройстве API16, но на устройстве API24 он отлично работал с мгновенным запуском.
надеюсь, что это поможет кому-то с той же проблемой
просто перейдите на вкладку Build-Edit Build Types-Properties-Build Type Version и понизьте ее до версии 23.0.1. нажимать OK. Это работает для android studio 1.5. Это сработало для меня.
ответ на запись находится в gradle поставить defaultConfig { multiDexEnabled правда } тогда имя приложения в манифесте android: name= " android.поддержка.мультидекс.MultiDexApplication" желаю, чтобы этот ответ был адским для кого-то
этот код решил проблему
defaultConfig { multiDexEnabled true }
для простой способ реализации входа в аккаунт Google на странице: google войти в android
попробовать
dexOptions { javaMaxHeapSize "4g" }
также сохранить тот же номер версии для различных служб.