Monday, 12 October 2020

Android 11 app crash with "The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 12451000 but found 4323000"

My app starts crashing on Android 11 devices with the following error message "The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 12451000 but found 4323000". I aware of such issues and I have already define correct value inside the manifest file as follows:

 <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

If I follow google_play_services_version I can found the expected value

<integer name="google_play_services_version">12451000</integer>

With the help of firebase analytics, I can confirm that it is happing with Android 11 devices only. impacted end user device

From the various SOF post I tried the following things so far:

1- Update all used play service and firebase dependencies to the latest available version.

2- Used tools: replace with build clean process, in the meta-data tag as follows for both app module as well as for wear module:

<meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version"
        tools:replace="android:value" />

3- Check all used 3rd part libs/SDK's manifest files for @integer/google_play_services_version but all are redirecting to the expected value i.e. 12451000.

Following are the build.gradle files: A- build.gradle {:app}-

apply from: '../release-config.gradle'
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'android-release-plugin'
apply plugin: 'testfairy'
apply from: '../sonar.gradle'
apply from: '../jacoco.gradle'
// Add the Firebase Crashlytics plugin.
apply plugin: 'com.google.firebase.crashlytics'

android.testOptions {
 unitTests.all {
    jacoco {
        includeNoLocationClasses = true
    }
}
unitTests.returnDefaultValues = true
}
tasks.sonarqube.dependsOn jacocoTestReport


android {
compileSdkVersion 30
buildToolsVersion '29.0.2'
ndkVersion "16.1.4479499"

kapt {
    javacOptions {
        option("-Adagger.gradle.incremental")
        option("-Adagger.formatGeneratedSource=disabled")
    }
}

dexOptions {
    javaMaxHeapSize "4g"
}

defaultConfig {
    applicationId "com.xx”
    minSdkVersion 23
    targetSdkVersion 30
    multiDexEnabled true
    testInstrumentationRunner 
    "androidx.test.runner.AndroidJUnitRunner"

    buildConfigField "String", "SERVER_BASE", ‘”————“’
    buildConfigField "String", "LOCUSLABS_ACCOUNT_ID", ‘”——“’
    buildConfigField "String", "GCM_SENDER_ID", ‘”———“’
    buildConfigField "String", "GRAB_ID", ‘”———“’
    buildConfigField "String", "GCT_CONVERSION_ID", ‘”———“’
    buildConfigField "String", "GCT_LABEL", ‘”———“’
    buildConfigField "String", "GCT_VALUE", ‘”——“’
}

signingConfigs {

}

buildTypes {
    debug {
        versionNameSuffix "(Debuggable)"
        debuggable true
        zipAlignEnabled true
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 
        'proguard-rules.pro'
    }
    release {
        shrinkResources true
        signingConfig signingConfigs.release
        zipAlignEnabled true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 
      'proguard-rules.pro'
        debuggable false
    }
}

flavorDimensions 'environment'

productFlavors {
    dev {
        applicationIdSuffix ".dev"
        buildConfigField "String", "SERVER_BASE", ‘”——————‘

        def internalVersion = 
         releaseConfig.getAppVersion().internalVersion
        resValue "string", "app_name", "xx (Test) ${internalVersion}"
    }

    stage {
        applicationIdSuffix ".stage"
        buildConfigField "String", "SERVER_BASE", ‘”—————“’—

        def internalVersion = 
        releaseConfig.getAppVersion().internalVersion
        resValue "string", "app_name", "xx (Stage) ${internalVersion}"
    }

    prod {
        buildConfigField "String", "SERVER_BASE", ‘”———“’——
        buildConfigField "String", "LOCUSLABS_ACCOUNT_ID", ‘”———“’
        buildConfigField "String", "GCM_SENDER_ID", ‘”——“’
        buildConfigField "String", "GRAB_ID", ‘”——“’
        buildConfigField "String", "GCT_CONVERSION_ID", ‘”———“’
        buildConfigField "String", "GCT_LABEL", ‘”———“’
    }
}

 packagingOptions {
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/ASL2.0'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/**rxjava.properties**'
}

lintOptions {
    abortOnError false
}

testfairyConfig {
    apiKey “———————“
}

testOptions {
    unitTests.returnDefaultValues = true
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

androidExtensions {
    experimental = true
}
}

def powermock_version = "2.0.2"
def daggerVersion = "2.16"
def leak_canary_version = "2.0-beta-1"

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(':common')
implementation('com.facebook.android:facebook-android-sdk:5.15.3') {
    exclude group: 'com.android.support'
}
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.cardview:cardview:1.0.0'
implementation "androidx.constraintlayout:constraintlayout:2.0.2"
implementation "com.google.android.gms:play-services-base:17.4.0"
implementation "com.google.android.gms:play-services-location:17.1.0"
implementation "com.google.android.gms:play-services-maps:17.0.0"
implementation "com.google.android.gms:play-services-vision:20.1.2"
implementation "com.google.android.gms:play-services-wearable:17.0.0"
implementation 'androidx.core:core:1.3.2'
implementation 'com.romandanylyk:pageindicatorview:1.0.3'
implementation 'com.getbase:floatingactionbutton:1.10.1'
implementation 'com.wdullaer:materialdatetimepicker:4.2.3'

// need by grab sdk
implementation 'androidx.viewpager2:viewpager2:1.0.0'
implementation 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
implementation('com.squareup.retrofit2:retrofit:2.5.0') {
    // exclude Retrofit’s OkHttp peer-dependency module and define 
   your own module import
    exclude module: 'okhttp'
}
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
implementation 'com.squareup.okhttp3:okhttp:3.12.1'
implementation 'com.squareup.okhttp3:logging-interceptor:3.9.1'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'

implementation 'com.google.zxing:core:3.3.3'
implementation 'io.reactivex.rxjava2:rxjava:2.1.10'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'com.airbnb.android:lottie:2.5.5'
implementation 'me.grantland:autofittextview:0.2.1'


implementation 'org.greenrobot:eventbus:3.1.1'
implementation 'com.github.bumptech.glide:glide:4.11.0'
kapt 'com.github.bumptech.glide:compiler:4.11.0'
implementation 'org.kamranzafar:jtar:2.2'
implementation 'org.tukaani:xz:1.5'
implementation 'io.reactivex:rxjava:1.3.0'
implementation 'io.reactivex:rxandroid:1.2.1'
implementation(name: 'locuslabs-android-sdk-2.3.10', ext: 'aar') {
    transitive = true
}
 implementation 'com.facebook.soloader:soloader:0.9.0'
implementation 'com.facebook.litho:litho-core:0.38.0'
implementation 'com.facebook.litho:litho-widget:0.38.0'
compileOnly 'com.facebook.litho:litho-annotations:0.38.0'
kapt 'com.facebook.litho:litho-processor:0.38.0'

// Firebase Dependencies
implementation "com.google.firebase:firebase-messaging:20.3.0"
// Add the Firebase Crashlytics SDK.
implementation 'com.google.firebase:firebase-crashlytics:17.2.2'
// Add the Firebase SDK for Google Analytics
implementation 'com.google.firebase:firebase-analytics:17.6.0'
implementation "com.google.firebase:firebase-core:17.5.1"

// Grab Dependencies
implementation(name: 'grab-framework-1.1.33', ext: 'aar')
implementation 'com.braintreepayments.api:braintree:2.16.0'
implementation 'com.android.volley:volley:1.1.1'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
implementation 'de.hdodenhof:circleimageview:2.0.0'
implementation 'org.kamranzafar:jtar:2.2'
implementation group: 'com.googlecode.libphonenumber', name: 
'libphonenumber', version: '8.4.1'
implementation 'io.card:android-sdk:5.5.1'
api 'com.wunderlist:sliding-layer:1.2.5'

// Background Process
implementation 'com.evernote:android-job:1.4.2'

// Dagger
implementation "com.google.dagger:dagger-android:$daggerVersion"
implementation "com.google.dagger:dagger-android-support:$daggerVersion"
kapt "com.google.dagger:dagger-android-processor:$daggerVersion"
kapt "com.google.dagger:dagger-compiler:$daggerVersion"

// Paging
implementation 'androidx.paging:paging-runtime:2.1.2'

// Lifecycle
implementation "androidx.lifecycle:lifecycle-runtime:2.2.0"
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
kapt "androidx.lifecycle:lifecycle-compiler:2.2.0"

// Utils
implementation 'com.jakewharton.timber:timber:4.7.1'

//For updating styles attributes dynamically
implementation 'com.airbnb.android:paris:1.7.1'

// A memory leak detection library.
debugImplementation "com.squareup.leakcanary:leakcanary-android:${leak_canary_version}"
implementation "com.squareup.leakcanary:leakcanary-object-watcher-android:${leak_canary_version}"
implementation 'com.intuit.sdp:sdp-android:1.0.6'

wearApp project(':wearable')

//Test
testImplementation 'junit:junit:4.12'
testImplementation 'org.mockito:mockito-core:2.23.0'

testImplementation "org.powermock:powermock-module-junit4:${powermock_version}"
testImplementation "org.powermock:powermock-module-junit4-rule:${powermock_version}"
testImplementation "org.powermock:powermock-api-mockito2:${powermock_version}"
testImplementation "org.powermock:powermock-classloading-xstream:${powermock_version}"

androidTestImplementation('androidx.test.espresso:espresso-core:3.3.0') {
    exclude group: 'com.google.code.findbugs'
    exclude group: 'com.android.support', module: 'support-annotations'
}

androidTestImplementation('androidx.test:runner:1.3.0') {
    exclude group: 'com.android.support', module: 'support-annotations'
}
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation ("com.github.tomeees:scrollpicker:1.7.4")

 }

 apply plugin: 'com.google.gms.google-services'

B- Top-level build.gradle file:

buildscript {
ext.kotlin_version = '1.3.72'

repositories {       
    maven { url 'https://plugins.gradle.org/m2/' }
    maven { url "http://www.bugsense.com/gradle/" }
    mavenLocal()
    jcenter()
    google()
    }

    dependencies {
    classpath 'com.android.tools.build:gradle:4.0.2'
    classpath 'com.dminc.gradle:android-release-plugin:1.1.0.6'
    classpath 'com.testfairy.plugins.gradle:testfairy:2.0'
    classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.2'
    classpath 'com.google.gms:google-services:4.3.4'
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }

    }

     allprojects {
     repositories {
     flatDir { dirs 'libs' }
     mavenLocal()
     mavenCentral()
     google()
     }
     }

Any leads would be very helpful. Thanks in advance.



from Android 11 app crash with "The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 12451000 but found 4323000"

No comments:

Post a Comment