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
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:
Disable splitting APK (you've figured it out already). Than you will have one APK.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With