Не удалось обновить студию Android 3.1: Конфликтующая конфигурация: "armeabi-v7a, x86" во время проекта синхронизации
это мой файл сборки приложения (app):
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'checkstyle'
def versions = ['appcompat_v7' : '25.1.0',
'butterknife' : '8.4.0',
'leak_canary' : '1.5',
'card_view' : '25.1.0',
'design' : '25.1.0',
'photoview' : '1.2.4',
'play_services': '10.0.1']
task checkstyle(type: Checkstyle) {
configFile file("${project.rootDir}/checkstyle/checkstyle.xml")
configProperties.checkstyleSuppressionsPath = file("${project.rootDir}/config/quality/checkstyle/suppressions.xml").absolutePath
// Where is my suppressions file for checkstyle is...
source 'src'
include '**/*.java'
exclude '**/gen/**'
classpath = files()
}
android {
compileSdkVersion 25
buildToolsVersion '27.0.3'
flavorDimensions "versionCode"
useLibrary 'org.apache.http.legacy'
dexOptions {
// Skip pre-dexing when running on Travis CI or when disabled via -Dpre-dex=false.
preDexLibraries = preDexEnabled && !travisBuild
}
defaultConfig {
ndk {
abiFilters 'x86', 'armeabi-v7a'
}
minSdkVersion 15
targetSdkVersion 23
versionCode 1
vectorDrawables.useSupportLibrary = true
testInstrumentationRunner "android.test.InstrumentationTestRunner"
}
signingConfigs {
release
}
buildTypes {
debug {
debuggable true
}
release {
//runProguard true
proguardFile file('android.pro')
proguardFile getDefaultProguardFile('proguard-android.txt')
signingConfig signingConfigs.release
}
}
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
// map for the version code
productFlavors {
playstore {
}
develop {
}
}
lintOptions {
//I'm too lazy to translate everything
abortOnError false
}
externalNativeBuild {
ndkBuild {
path 'src/main/jni/Android.mk'
}
}
}
def Properties props = new Properties()
def propFile = new File('signing.properties')
if (propFile.canRead()) {
props.load(new FileInputStream(propFile))
if (props != null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') &&
props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) {
android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
} else {
println 'signing.properties found but some entries are missing'
android.buildTypes.release.signingConfig = null
}
} else {
println 'signing.properties not found'
android.buildTypes.release.signingConfig = null
}
buildscript {
repositories {
jcenter()
mavenCentral()
}
}
dependencies {
compile project(":tess-two:tess-two")
compile project(":volley")
compile project(":real-time-ocr")
compile 'com.github.barteksc:pdfium-android:1.5.0'
compile fileTree(dir: 'src/main/libs', include: '*.jar')
debugCompile "com.squareup.leakcanary:leakcanary-android:${versions.leak_canary}"
releaseCompile "com.squareup.leakcanary:leakcanary-android-no-op:${versions.leak_canary}"
compile 'com.viewpagerindicator:library:[email protected]'
compile "com.commit451:PhotoView:${versions.photoview}"
compile 'com.google.code.findbugs:jsr305:2.0.2'
compile "com.google.guava:guava:18.0"
compile 'de.greenrobot:eventbus:2.4.0'
compile 'com.nineoldandroids:library:2.4.0'
compile "com.android.support:design:${versions.design}"
compile "com.android.support:appcompat-v7:${versions.appcompat_v7}"
compile 'org.apache.commons:commons-compress:1.5'
compile "com.android.support:cardview-v7:${versions.card_view}"
compile 'com.google.code.gson:gson:2.8.2'
compile "com.jakewharton:butterknife:${versions.butterknife}"
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
compile 'com.google.android.gms:play-services-vision:9.4.0+'
compile group: 'com.facebook.android', name: 'facebook-android-sdk', version: '4.25.0'
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.0'
androidTestCompile 'com.google.dexmaker:dexmaker:1.0'
androidTestCompile 'org.mockito:mockito-core:1.10.17'
androidTestCompile 'junit:junit:4.12'
testCompile 'junit:junit:4.12'
testCompile "org.mockito:mockito-all:1.10.19"
testCompile("org.robolectric:robolectric:3.0-rc2") {
exclude group: 'commons-logging', module: 'commons-logging'
}
compile('com.crashlytics.sdk.android:crashlytics:2+') {
transitive = true;
}
compile('com.crashlytics.sdk.android:crashlytics-ndk:[email protected]') {
transitive = true;
}
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.shawnlin:number-picker:2.4.4'
compile 'com.squareup.picasso:picasso:2.5.2'
}
crashlytics {
enableNdk true
androidNdkOut '/Users/renard/devel/textfairy/tess-two/tess-two/obj'
androidNdkLibsOut '/Users/renard/devel/textfairy/tess-two/tess-two/libs'
}
apply plugin: 'com.google.gms.google-services'
Студия Android не может синхронизировать проект и выдает мне эту ошибку:
Противоречивая конфигурация: 'armeabi-v7a, x86' в ndk abiFilters не может присутствовать, если установлены фильтры split для abi: x86, armeabi-v7a
Конфигурация 'compile' устарела и была заменена на 'реализация'. Он будет удален в конце 2018 года
Конфигурация debugCompile устарела и была заменена на debugImplementation. Он будет удален в конце 2018 года
Конфигурация 'androidTestApi' устарела и была заменена на 'androidTestImplementation'. Он будет удален в конце 2018 года
Конфигурация releaseCompile устарела и была заменена releaseImplementation. Он будет удален в конце 2018 года
Конфигурация 'testCompile' устарела и была заменена на 'testImplementation'. Он будет удален в конце 2018 года
Конфигурация 'testApi' устарела и была заменена на 'testImplementation'. Он будет удален в конце 2018 года
Конфигурация 'androidTestCompile' устарела и была заменена на 'androidTestImplementation'. Он будет удален в конце 2018 года
Параметр android.enableAapt2 устарел и больше не должен использоваться. Используйте 'android.enableAapt2 = true', чтобы удалить это предупреждение. Он будет удален в конце 2018 года.
Конфигурация 'compile' устарела и была заменена на 'реализация'. Он будет удален в конце 2018 года
Параметр android.enableAapt2 устарел и больше не должен использоваться. Используйте 'android.enableAapt2 = true', чтобы удалить это предупреждение. Он будет удален в конце 2018 года.
Конфигурация 'testCompile' устарела и была заменена на 'testImplementation'. Он будет удален в конце 2018 года
Конфигурация 'testApi' устарела и была заменена на 'testImplementation'. Он будет удален в конце 2018 года
Параметр android.enableAapt2 устарел и больше не должен использоваться. Используйте 'android.enableAapt2 = true', чтобы удалить это предупреждение. Он будет удален в конце 2018 года.
Конфигурация 'compile' устарела и была заменена на 'реализация'. Он будет удален в конце 2018 года
если я удалю эту строку
defaultConfig {
ndk {
abiFilters 'x86', 'armeabi-v7a'
}
проект успешно синхронизирован, но при сборке выдает ошибку
Не удалось выполнить aapt
Я уже пытаюсь очистить и восстановить проект, но все еще не работает! Я также публикую файл build.gradle(Project)
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
jcenter()
google()
}
dependencies {
classpath 'io.fabric.tools:gradle:1+'
classpath 'com.google.gms:google-services:3.0.0'
classpath 'com.android.tools.build:gradle:3.1.0'
}
}
allprojects {
repositories {
maven { url 'https://maven.fabric.io/public' }
maven { url "http://dl.bintray.com/populov/maven" }
jcenter()
maven {
url "http://oss.sonatype.org/content/repositories/snapshots"
}
maven { url 'https://oss.jfrog.org/artifactory/oss-snapshot-local/' }
maven {
url "https://maven.google.com" // Google Maven repository
}
}
}
ext {
travisBuild = System.getenv("TRAVIS") == "true"
// allows for -Dpre-dex=false to be set
preDexEnabled = "true".equals(System.getProperty("pre-dex", "true"))
}
мой файл gradle-wrapper.properties
#Tue Mar 27 14:42:14 CEST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
и мой файл gradle.properties
ndkDir=/Users/giuliopettenuzzo/Library/Android/sdk/ndk-bundle
org.gradle.jvmargs=-XX\:MaxPermSize\=512m
android.enableAapt2=false
Ответы
Ответ 1
ndk
. abiFilters
означает, что в окончательный APK будут включены только выбранные архитектуры процессоров родных библиотек.
С другой стороны, splits
. abi
. enable true
сообщает компилятору генерировать отдельные APK для выбранных архитектур.
Это означает, что эта две конфигурации не могут быть установлены вместе. Таким образом, у вас есть два варианта:
-
Отключить разделение APK (вы уже поняли это). Тогда у вас будет один APK.
-
Удалите настройку ndk
. abiFilters
. Чем у вас будет несколько (вероятно, намного меньше) APK. Более того, при universalApk true
будет создан универсальный APK со всеми архитектурами (вероятно, намного больше, чем в варианте 1).
Затем замените compile
новым ключевым словом implementation
. Я думаю, это ясно из сообщения об ошибке.
Ответ 2
Наконец, я получил работу, поставив
abi {
enable false
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
и multiDexEnabled true
но я не знаю, multiDexEnabled true
ли эта проблема проблему или просто проигнорировала ошибку.
Ответ 3
dependencies {
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.google.android.gms:play-services-maps:9.6.1'
implementation fileTree(dir: 'libs', include: ['*.jar'])
androidTestImplementation ('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
implementation 'com.google.firebase:firebase-core:9.6.1' //referencia a la version de firebase
implementation 'com.google.firebase:firebase-database:9.6.1' // referencia a la base de datos
implementation 'com.google.firebase:firebase-auth:9.6.1'
implementation 'com.google.android.gms:play-services-auth:9.6.1'
implementation 'com.google.android.gms:play-services-maps:9.6.1'
// aqui se agrega la referencia a la autentificacion
}
** заменить компиляцию по выполнению androidCompileTest by androidTestImplementation **
Ответ 4
Я открыл старый проект, и когда мне захотелось его построить, я получал много ошибок, которые были очень неприятными. Я заменил компиляцию на реализацию и добавил все необходимые коды. Наконец, проект успешно строился.
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
androidTestImplementation ('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:cardview-v7:27.1.1'
implementation 'com.android.support:customtabs:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.facebook.android:facebook-android-sdk:4.+'
implementation 'com.facebook.android:account-kit-sdk:4.+'
implementation 'com.android.volley:volley:1.1.0-rc2'
implementation 'com.google.android.gms:play-services-ads:15.0.1'
testImplementation 'junit:junit:4.12'
}