Ошибка: выполнение выполнено для задачи ': app: transformClassesWithDexForDebug'
Ошибка
Ошибка: выполнение выполнено для задачи ': app: transformClassesWithDexForDebug'. com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command'/usr/lib/jvm/java-8-oracle/bin/java '' с ненулевым значением выхода 1
Мое приложение gradle file:
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId 'Hidden application ID'
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
disable 'InvalidPackage'
}
packagingOptions {
exclude 'META-INF/services/javax.annotation.processing.Processor'
}
productFlavors {
}
}
repositories {
mavenCentral()
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.android.support:cardview-v7:23.1.1'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.mcxiaoke.volley:library-aar:1.0.0'
compile 'com.google.android.gms:play-services:8.1.0'
compile 'com.facebook.android:facebook-android-sdk:4.7.0'
compile 'com.googlecode.libphonenumber:libphonenumber:7.2.1'
compile 'com.getbase:floatingactionbutton:1.10.1'
compile 'com.android.support:preference-v7:23.1.1'
}
При отладке, если я установил minifyEnabled в значение true, он скомпилируется. Однако, я не могу отлаживать свое приложение.
Я проверил этот другой вопрос: Выполнение не выполнено для задачи ': app: transformClassesWithDexForDebug' при внедрении Google для Android, но есть только один ответ и его реализация не разрешает проблему, к сожалению.
AFAIK, ошибка возникает из-за добавления слишком большого количества зависимостей gradle, но я могу ошибаться (я действительно надеюсь ошибиться, потому что все эти пакеты действительно важны!).
Пожалуйста, помогите мне решить эту ошибку. Большое спасибо!
Ответы
Ответ 1
Просто исправьте зависимости сервисов Google:
Вы включаете все игровые сервисы в свой проект. Добавляйте только те, которые вы хотите.
Например, если вы используете только карты и g + signin, чем изменение
compile 'com.google.android.gms:play-services:8.1.0'
to
compile 'com.google.android.gms:play-services-maps:8.1.0'
compile 'com.google.android.gms:play-services-plus:8.1.0'
Из документа:
В версиях сервисов Google Play до 6.5 вам пришлось скомпилировать весь пакет API в ваше приложение. В некоторых случаях это делается сложнее сохранить количество методов в вашем приложении (в том числе API-интерфейсы, библиотечные методы и собственный код) под 65 536 предел.
В версии 6.5 вы можете выборочно компилировать Google Play API обслуживания в ваше приложение. Например, чтобы включить только Google Fit и Android Wear API, замените следующую строку в своем Файл build.gradle:
compile 'com.google.android.gms: play-services: 8.3.0'
с этими строками:
compile 'com.google.android.gms: play-services-fitness: 8.3.0'
compile 'com.google.android.gms: play-services-wearable: 8.3.0'
Весь список можно найти здесь.
Ответ 2
Попробуйте
dexOptions {
javaMaxHeapSize "4g"
preDexLibraries = false
}
Я не знаю причины.
Что-то о preDexLibraries
:
https://sites.google.com/a/android.com/tools/tech-docs/new-build-system/tips
Согласно @lgdroid57:
Следующий ресурс должен помочь объяснить, что делает этот код: link (http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.DexOptions.html) Свойство | Описание javaMaxHeapSize | Устанавливает значение -JXmx * при вызове dx. Формат должен соответствовать шаблону 1024M. preDexLibraries | Будь то библиотеки pre-dex. Это может улучшить инкрементные сборки, но чистые сборки могут быть медленнее.
Ответ 3
Попробуйте добавить multiDexEnabled true
в ваше приложение build.gradle
.
defaultConfig {
multiDexEnabled true
}
Ответ 4
Это проблема Multidex. Вы можете попытаться удалить какую-нибудь банку, или можете попробовать следующее:
http://developer.android.com/tools/building/multidex.html#mdex-gradle
в приложении build.gradle:
defaultConfig {
...
minSdkVersion 14
targetSdkVersion 21
...
// Enabling multidex support.
multiDexEnabled true
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
В вашем манифесте:
<?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>
Ответ 5
добавьте multiDexEnabled true
в default config file
of build.gradle
, как этот
defaultConfig {
multiDexEnabled true
}
Ответ 6
Решение, которое работало для меня лично, было:
в build.gradle
defaultConfig {
multiDexEnabled true
}
dexOptions {
javaMaxHeapSize "4g"
}
Ответ 7
Мой ответ немного устарел, но для меня единственным решением было добавить параметр multiDexEnabled в defaultConfig, например так:
android{
...
defaultConfig{
...
multiDexEnabled true
}
}
Если это не работает, попробуйте добавить этот фрагмент кода:
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.1.0'
}
}
}
}
Моя ошибка была связана с проблемой с разными версиями библиотек, и это помогло.
Я надеюсь, что это может помочь кому-то :)
Ответ 8
Убедитесь, что вы не используете две версии сервиса google.
Например, имея:
compile 'com.google.firebase:firebase-messaging:9.8.0'
и
compile 'com.google.firebase:firebase-ads:10.0.0'
Ответ 9
У меня возникла эта проблема, когда я обновил плагин Gradle с версии 1.2.3 до 1.5.0, как предлагал Android Studio. На веб-странице 1.5.0 выглядит бета-версией.
Честно говоря, я не знаю, какие преимущества имеет версия 1.5.0, но я предпочел бы дождаться стабильной версии.
Конечно, переход к 1.2.3 решил проблему.
Ответ 10
Возможная помощь
Пробовал как абсолютное последнее средство после исчерпания всех других опций
Я удалил все палки памяти (RAM), но один. У меня теперь меньше памяти, но она снова работает. Я не могу притворяться, что знаю, почему процесс сборки всегда обнаружил поврежденную память, или если это 100% основная причина - в других отношениях система работает нормально. Может быть, это что-то попробовать, удачи.
Ответ 11
Для меня закрытие всех остальных Android Studio решило проблему.
Я открыл 3 студии андроида, когда я получал ошибку, после того как я закрыл 2, я не получил никаких ошибок.
Не нужно добавлять код, связанный с multiDex!
Ответ 12
Нет необходимости в мультитексе. Для "старого" проекта, открытого в Android Studio 2.1, он менял версию плагина gradle от 1.5.0 до 2.1.0, которая исправила проблему для меня.
buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
}
}
Ответ 13
Я решил это! Это набор настроек и обновлений.
Добавьте эти переменные, где они вписываются в build.gradle
android {
packagingOptions {
exclude 'META-INF/ASL2.0'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
dexOptions {
javaMaxHeapSize "4g"
}
defaultConfig {
multiDexEnabled true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
Затем обновите до Java 8 http://tecadmin.net/install-oracle-java-8-jdk-8-ubuntu-via-ppa/
, и все будет решено!
Это из-за обновления buildTools
и новой студии Android.
Ничто другое не потерпит неудачу.
Ответ 14
Изменяя
compile 'com.google.android.gms: play-services: 8.1.0'
только для необходимых файлов, проблема может быть решена
Эта проблема возникает из-за превышения файлов в файле build.gradle.
Ответ 15
Перейдите в сборку → Очистите и запустите приложение снова
Ответ 16
Перейти в сборку ->
Чистый проект ->
Запустить проект: сделано
работая над android 5.1 для меня
Ответ 17
Используя ионную, я смог исправить эту ошибку, используя команду: "cordova clean"
Ответ 18
У меня была эта проблема, когда я делегировал свою задачу компиляции Google Compute Engine через SSH. Характер этой проблемы - ошибка памяти, о чем свидетельствует журнал сбоев; в частности, он бросается, когда Java заканчивает работу с виртуальной памятью во время сборки.
Важно:
Когда gradle происходит сбой из-за этой ошибки памяти, демоны gradle продолжают работать задолго после сбоя задачи компиляции. При повторной попытке сборки с использованием gradle будет выделен новый демон gradle. Вы должны гарантировать, что вы должным образом распоряжаетесь любыми разбитыми экземплярами с помощью gradlew --stop
.
Журналы аварийных сообщений hs_error_pid
указывают на следующие обходные пути:
# There is insufficient memory for the Java Runtime Environment to continue.
# Possible reasons:
# The system is out of physical RAM or swap space
# In 32 bit mode, the process size limit was hit
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Use 64 bit Java on a 64 bit OS
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
Я обнаружил, что после увеличения ресурсов среды выполнения виртуальной машины эта проблема была решена.
Ответ 19
У меня была аналогичная ошибка. Я исправил его, просто переключив каталог. Повторное клонирование моего проекта из моего репозитория git, импорт его в студию android и его создание. Похоже, что один из каталогов/файлов, созданных Android Studio, может привести к повреждению вашего проекта. Удаление всех файлов с Android Studio в вашем проекте или выполнение того, что я сделал, могут решить проблему. Надеюсь, это поможет.
Ответ 20
Устранить проблему с установкой проблемы build.gradle(Module: Android).
Измените его на работоспособную версию.
android {
buildToolsVersion '23.0.1'
}
Ответ 21
Для всех, кто столкнулся с этой проблемой/столкнется с ней в будущем:
Нажмите на меню "Сборка" → "Выбрать вариант сборки" → "отладить"
Выдача на отладку в модуле: приложение /* debug { отлаживаемый истинный } */
Перейдите в меню "Сборка" → сгенерируйте подписанный apk → .... → постройте его
Ответ 22
Переместите объявление приложения плагина в нижней части файла:
применить плагин: 'com.google.gms.google-services'
Ответ 23
По-видимому, я решил проблему, объединив все решения
добавив следующее к манифесту android:
<application
...
android:name="android.support.multidex.MultiDexApplication" >
...
</application>
Следуя команде build.gradle app
android {
...
dexOptions {
javaMaxHeapSize "4g"
preDexLibraries = false
}
...
defaultConfig {
multiDexEnabled true
}
}
Ответ 24
- Выполнить: плагин cordova rm cordova-plugin-compat --force
- Выполнить: плагин cordova добавить [email protected]
- Изменение: config.xml в вашей папке проекта используйте "6.2.3", а не "^ 6.2.3", затем удалите папку платформ /android, перезапустите кордову, подготовьте андроид и создайте андроид corova
Ответ 25
просто удалите обе папки build
в /android
и /android/app
и строить снова с помощью react-native run-android
Ответ 26
Не сходите с ума, я просто чист, а затем перестраиваю проект, и ошибка ушла
Ответ 27
У меня была эта ошибка при запуске проекта Ionic на устройстве Android, и я решил ее, удалив и добавив платформу Android:
ionic cordova platform remove android
ionic cordova platform add android
Ответ 28
реактивное обновление
затем
реагировать-родной запуск андроид
Ответ 29
Вы можете использовать эту команду
Проект открывается с помощью командной строки
cd android
затем
./gradlew clean
затем
cd ..
react-native run-android
Ответ 30
Если используется java 8 или выше, проблема в том, что библиотеки, которые мы используем, несовместимы с java 8. Итак, чтобы решить эту проблему, добавьте эти две строки для сборки.gradle вашего приложения и всех подмодулей, если таковые имеются. (Android-студия четко показывает, как это сделать в сообщении об ошибке)
targetCompatibility = '1.7' sourceCompatibility = '1.7'