1

I've created an App via Android Studio, full Java code, and generated the app bundle (.aab) and uploaded the .aab file in Google Play Console. At new release creation, I receive the 64 bit incompatibility error. I donno why I uses to receive this error, as my application has no native code (NDK). I've read all Google Developer documentation related to 64 bit. I've run the APK Analyzer and the result is the following:

analyzed apk

As you can check, no .so files has been detected.

The following is the build gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "XX.XX.app"
        minSdkVersion 21
        targetSdkVersion 29
        versionCode 11
        versionName "1.1.10"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        //64 bit devices support
        /*ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'*/
    }
    buildTypes {
        debug {
            resValue "string", "default_server_name", "XX.XX.XX"
            debuggable true
        }
        release {
            resValue "string", "default_server_name", "XX.XX.XX"
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    //Build variants
    flavorDimensions 'content'
    productFlavors {
        XXXX {
            dimension = 'content'
        }
        XXXX {
            dimension = 'content'
            applicationId = 'XX.XX.XX.app'
        }
        XXXX {
            dimension = 'content'
            applicationId = 'XX.XX.XX.XX.app'
        }
    }
}

dependencies {
    // Base
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.1.0-beta01'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    // Views
    implementation 'androidx.recyclerview:recyclerview:1.1.0-beta05'
    implementation 'androidx.cardview:cardview:1.0.0'
    // ViewModel and LiveData
    implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0-beta01'
    // Java8 support for Life cycles
    implementation 'androidx.lifecycle:lifecycle-common-java8:2.2.0-beta01'
    // ButterKnife lib (annotations)
    implementation 'com.jakewharton:butterknife:10.2.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0'
    // Bluetooth devices libs
    implementation files('libs/xxxx.jar')
    implementation files('libs/xxxx.jar')
    implementation files('libs/xxxx.jar')
    implementation files('libs/xxxx.jar')
    implementation files('libs/xxxx.jar')
    // Utility libs
    implementation 'org.greenrobot:eventbus:3.1.1'
    implementation 'com.android.volley:volley:1.1.1'
    implementation 'net.danlew:android.joda:2.10.1.2'
    implementation 'com.jakewharton.timber:timber:4.7.1'
    implementation 'com.squareup:otto:1.3.8' //mandatory for Bewell devices
    // Graph libs
    implementation 'pl.pawelkleczkowski.customgauge:CustomGauge:1.0.4'
    implementation 'io.apptik.widget:multislider:1.3'
    implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
    // Calendar lib
    implementation 'com.github.prolificinteractive:material-calendarview:2.0.1'
    // Must be removed -> temp fix for issue https://github.com/prolificinteractive/material-calendarview/issues/947
    implementation 'com.jakewharton.threetenabp:threetenabp:1.2.1'
}

The XX stands for customer's privacy.

I've executed the build with the following part commented and uncommented.

 //64 bit devices support
 /*ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'*/

but the error is still the same.

Could anyone help me or gimme a suggestion?

UPDATE: in my project I've a .bc file. I've read in this post that could be the cause of my issue. I'm going to investigate about this. I've a quite similar project which has been successfully loaded in GPC. This project imports the following libs: butterknife, eventbus, joda, timber, calendarview, threetenabp, MPAndroidChart which can be considered "64 bit ok".

Thanks

Akamaccio
  • 79
  • 5
  • _"my application has no native code"_. Maybe none _of your own_, but it's still possible that one of your dependencies includes native libraries. – Michael Oct 14 '19 at 13:01
  • Thanks Micheal for your quick reply. I've a quite similar project which has been successfully loaded in GPC. This project imports the following libs: butterknife, eventbus, joda, timber, calendarview, threetenabp, MPAndroidChart. Jar files contains java code only by default. Otto, CustomGauge and multislider do not seems to integrate NDK. As I mentioned in my UPDATE, maybe the problem is caused by a .bc file required by a .jar file. – Akamaccio Oct 14 '19 at 14:22
  • Rather than look at every dependency, just look at the APK. If you have `.so` files in the lib directory then you have native dependencies. – Dan Albert Oct 14 '19 at 23:52
  • @DanAlbert As I mentioned in the early start of the post, the APK analyzer hasn't detected any `.so` files. Unzipping the `.apk` file and going deep into the folders, confirms that there are no `.so` files. I'm quite sure that the problem is the `.bc` file. – Akamaccio Oct 15 '19 at 07:28
  • After a while I can confirm that the problem is caused by the metioned file .bc. Changing the file extension to .cc solved the issue. The SDK developer applied this change and all worked like a charm. Maybe the file was not a binary code file and the .bc extension has been used improperly. The Question can be closed. – Akamaccio Oct 30 '19 at 10:17

0 Answers0