Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

not able to update android studio 3.1: Conflicting configuration : 'armeabi-v7a,x86' during sync project

Tags:

this is my build gradle (app) file:

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:2.4.1@aar'     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:1+@aar') {         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 studio can't sync project and get me this error:

Conflicting configuration : 'armeabi-v7a,x86' in ndk abiFilters cannot be present when splits abi filters are set : x86,armeabi-v7a

Configuration 'compile' is obsolete and has been replaced with 'implementation'. It will be removed at the end of 2018

Configuration 'debugCompile' is obsolete and has been replaced with 'debugImplementation'. It will be removed at the end of 2018

Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'. It will be removed at the end of 2018

Configuration 'releaseCompile' is obsolete and has been replaced with 'releaseImplementation'. It will be removed at the end of 2018

Configuration 'testCompile' is obsolete and has been replaced with 'testImplementation'. It will be removed at the end of 2018

Configuration 'testApi' is obsolete and has been replaced with 'testImplementation'. It will be removed at the end of 2018

Configuration 'androidTestCompile' is obsolete and has been replaced with 'androidTestImplementation'. It will be removed at the end of 2018

The option 'android.enableAapt2' is deprecated and should not be used anymore. Use 'android.enableAapt2=true' to remove this warning. It will be removed at the end of 2018.

Configuration 'compile' is obsolete and has been replaced with 'implementation'. It will be removed at the end of 2018

The option 'android.enableAapt2' is deprecated and should not be used anymore. Use 'android.enableAapt2=true' to remove this warning. It will be removed at the end of 2018.

Configuration 'testCompile' is obsolete and has been replaced with 'testImplementation'. It will be removed at the end of 2018

Configuration 'testApi' is obsolete and has been replaced with 'testImplementation'. It will be removed at the end of 2018

The option 'android.enableAapt2' is deprecated and should not be used anymore. Use 'android.enableAapt2=true' to remove this warning. It will be removed at the end of 2018.

Configuration 'compile' is obsolete and has been replaced with 'implementation'. It will be removed at the end of 2018

if I delete this line

defaultConfig {      ndk {         abiFilters 'x86', 'armeabi-v7a'     } 

the project sync sucessfully but when build give me this error

Failed to execute aapt

I already try to clean and rebuild project but still not working! I also post the build.gradle (Project) file

    // 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's Maven repository         }     }  }  ext {     travisBuild = System.getenv("TRAVIS") == "true"     // allows for -Dpre-dex=false to be set     preDexEnabled = "true".equals(System.getProperty("pre-dex", "true")) } 

my gradle-wrapper.properties file

    #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 

and my gradle.properties file

    ndkDir=/Users/giuliopettenuzzo/Library/Android/sdk/ndk-bundle org.gradle.jvmargs=-XX\:MaxPermSize\=512m android.enableAapt2=false 
like image 822
Giulio Pettenuzzo Avatar asked Mar 27 '18 16:03

Giulio Pettenuzzo


2 Answers

ndk.abiFilters configuration means that only selected processor architectures of native libraries will be included in the final APK.

On the other hand, splits.abi.enable true tells the compiler to generate separated APKs for selected architectures.

It seams that this two configuration can't be set together. So you have two options:

  1. Disable splitting APK (you've figured it out already). Than you will have one APK.

  2. Remove ndk.abiFilters setting. Than you will have multiple (probably much smaller) APKs. Moreover, with universalApk true, an universal APK with all architectures will be generated (probably much larger than in option 1).

Than, replace compile with new keyword implementation. I think, this is clear from error message.

like image 151
Peter Knut Avatar answered Oct 11 '22 06:10

Peter Knut


Finally I got it working by putting

abi {     enable false     reset()     include 'x86', 'armeabi-v7a'     universalApk true } 

and multiDexEnabled true but I don't know if this sorted out the problem or just ignoring the error.

like image 20
Giulio Pettenuzzo Avatar answered Oct 11 '22 04:10

Giulio Pettenuzzo