Недавно я начал учиться программировать устройства Android через Android Studio. Мое первое приложение работало нормально, пока сегодня утром я не обновился до Android Studio 3.4.
Я получаю следующие ошибки компиляции:
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\Technical.gradle\caches\transforms-2\files-2.1\4f3f8638c6a9f961dae488a0387efb6b\jars\classes.jar
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
Caused by: com.android.tools.r8.utils.AbortException: Error: Invoke-customs are only supported starting with Android O (--min-api 26)
Есть ли способ вернуться к моей предыдущей версии Android Studio?
Если нет, что изменилось в новой версии, что вызывает сбой при создании файла dex?
Я попытался добавить android.enableD8=true в gradle.properties, как было предложено здесь, но безуспешно.
РЕДАКТИРОВАТЬ № 1:
Также привязали добавление multiDexEnabled true к конфигурации по умолчанию в файле приложения build.gradle, но те же ошибки компиляции сохраняются.
Этот файл сборки полностью...
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "qdivision.org.qrtracker"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.github.felHR85:UsbSerial:6.0.5'
}
попробуй это:
defaultConfig {
...
multiDexEnabled true
}
ваши проекты файл build.gradle
Я получаю следующую ошибку, когда делаю это, ERROR: Could not find method defaultConfig() for arguments [build_1wu37mi9z13d069hc2dpowvjx$_run_closure3@546708aa] on project ':app' of type org.gradle.api.Project. Open File
да нашел, но это не решает исходные ошибки компиляции
Попробуйте добавить ниже в свой app/build.gradle, чтобы компиляция проекта Android была совместима с Ява 8.
android {
....
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
....
}
После того, как я добавил библиотеку apachi commons lang в проект, я столкнулся с этой ошибкой. Затем после добавления вышеприведенного кода моя ошибка была исправлена. Спасибо.
У меня не работает, есть идеи?
Спасибо, это решило проблему, когда я столкнулся с этой проблемой!
В этой трассировке стека важна эта строка:
Caused by: com.android.tools.r8.utils.AbortException: Error: Invoke-customs are only supported starting with Android O (--min-api 26)
Поскольку в ваших зависимостях нет библиотеки kotlin, я предполагаю, что вы работаете с java. Я бы попробовал ответы в этом выпуске
Мне пришлось удалить useProguard true из конфигурации buildTypes.
Согласно документацияminifyEnabled true достаточно, чтобы запутать ваш код с помощью R8.
Пример:
android {
buildTypes {
debug {
versionNameSuffix "-dev"
minifyEnabled true // <- remove this line when using instant run
useProguard true // <- remove this line
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), "proguard-rules.pro"
}
release {
shrinkResources true
minifyEnabled true
useProguard true // <- remove this line
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), "proguard-rules.pro"
}
}
}
Если вы пытаетесь запустить apk напрямую из студии Android, старайтесь не включать
minifyEnabled true
Прокомментируйте следующую строку.
// minifyEnabled true
// shrinkResources true
Но вы можете использовать строку выше при сборке apk.
Если вы используете библиотеку Google Cloud, попробуйте уменьшить версию до 1.90
Добавьте следующее, чтобы ваше приложение было скомпилировано компилятором java8.
android {
.....
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
И отключите мгновенный запуск, найденный в
Preferences->Build,Execution,Deployment->Debugger->Instant RunЯ добавил ко всем модулям этот код:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Но ошибка все равно была. В моем случае некоторые из моих модулей использовали путь к классам «me.tatarka: gradle-retrolambda», и это привело к конфликту с этим:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Поэтому мне нужно перейти с Retrolambda по этой ссылке: https://developer.android.com/studio/write/java8-support#migrate_from_retrolambda
Пожалуйста, добавьте эту строку в файл build.gradle.
android{
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Если вы посмотрите на уже данные ответы, это было принятое решение, данное в апреле прошлого года.
в вашей Android Studio перейдите к build.gradle(Module:App)
затем добавьте этот блок compileOptions{} в блок android{}
android{
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
}
У меня такая же проблема. Мой был вызван ... org.apache.commons:commons-lang .... На данный момент у меня нет полного сообщения об ошибке. Эта ошибка возникает только во время Rebuild или Clean Build.
Я решил, изменив org.apache.commons:commons-text:1.8 в моем build.gradle на org.apache.commons:commons-text:1.6.
Примечание. Было предложено здесь отключить «Мгновенный запуск» в Android Studio. Эта функция не была доступна в моей Android Studio. Версия -
Android Studio 3.5.1
Build #AI-191.8026.42.35.5900203, built on September 26, 2019
Windows 10 10.0
для kotlin вы также должны добавить kotlinOptions:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}
для меня решение с Java 8 заработало только после того, как я удалил все, что связано с ретролямбдой.
Для всех, кто столкнулся с этим, я столкнулся с этой проблемой после добавления зависимости от этой библиотеки Джексона:
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.1")
Приведенное выше решение "compileOptions" устранило проблему для меня.
для меня следующая команда в ПОСТРОИТЬ.ГРАДЛ удалила ошибку.
defaultConfig {
applicationId "com.example.myapptestheader"
minSdkVersion 21
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
я только что добавил
multiDexEnabled true
Это все еще работает в 2021 году, пожалуйста, попробуйте.
android {
compileSdkVersion 30
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "com.example.android.bakingapp"
minSdkVersion 15
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
В моем случае это также отображалось после добавления следующих строк:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Итак, я исправил свою проблему, просто обновив свой minSdkVersion с 19 на 21, и тогда, наконец, это сработало !!!
Я столкнулся с этой ошибкой после обновления основных библиотек в build.gradle до последних версий, к счастью, принятый ответ сработал для меня.
Причиной работы принятого ответа было изменение в последней версии основной библиотеки, ориентированной на уровень API 30, которая написана на java8, поэтому добавление зависимости от java8 решило эту проблему.
По состоянию на декабрь 2021 года это то, что работает. Причина, по которой я столкнулся с этим, заключается в отсутствии skd версии 26 и отсутствующей версии java 8. В папке build.gradle(app) добавьте следующий код, чтобы убедиться, что у вас есть правильные зависимости, конфигурации по умолчанию и совместимость с Android. . Вам пока не нужно знать, что они означают, просто знайте, что они существуют. По сути, вы пытаетесь убедиться, что Android может читать предыдущую версию вещей. Вот код, который я запускаю, чтобы убедиться, что мои приложения работают.
apply plugin: 'com.android.application'
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
compileSdkVersion 26
compileSdkVersion 27
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "com.example.firstfirstapp"
minSdkVersion 16
targetSdkVersion 26
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "androidx.cardview:cardview:1.0.0"
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
implementation 'com.android.support:appcompat-v7:26.0.0'
}
добавить то куда?