web-dev-qa-db-fra.com

L'application commence à planter après la mise à niveau vers SDK 31 Android

éditer J'ai supprimé Appodeal, explorestack:consent et jcenter et maintenant cela fonctionne. Appodeal n'a pas construit sans jcenter qui est obsolète. Je ne suis pas vraiment sûr où le problème réside, mais l'un des éléments ci-dessus devrait être le problème.

J'ai récemment mis à jour les bibliothèques dans mon build.gradle et la TargetsDkversion. Après avoir testé et télécharger sur Google Play, j'ai soudainement commencé à avoir des crashs:

Fatal Exception: Java.lang.IllegalArgumentException: com.name.app: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
       at Android.app.PendingIntent.checkFlags(PendingIntent.Java:375)
       at Android.app.PendingIntent.getBroadcastAsUser(PendingIntent.Java:645)
       at Android.app.PendingIntent.getBroadcast(PendingIntent.Java:632)
       at androidx.work.impl.utils.ForceStopRunnable.getPendingIntent(ForceStopRunnable.Java:174)
       at androidx.work.impl.utils.ForceStopRunnable.isForceStopped(ForceStopRunnable.Java:108)
       at androidx.work.impl.utils.ForceStopRunnable.run(ForceStopRunnable.Java:86)
       at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.Java:75)
       at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1167)
       at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:641)
       at Java.lang.Thread.run(Thread.Java:920)

et

Fatal Exception: Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.name.app/com.name.app.Activities.LoginActivity}: Android.view.InflateException: Binary XML file line #29: Error inflating class com.google.Android.gms.common.SignInButton
       at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2330)
       at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2392)
       at Android.app.ActivityThread.access$800(ActivityThread.Java:156)
       at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1308)
       at Android.os.Handler.dispatchMessage(Handler.Java:102)
       at Android.os.Looper.loop(Looper.Java:135)
       at Android.app.ActivityThread.main(ActivityThread.Java:5314)
       at Java.lang.reflect.Method.invoke(Method.Java)
       at Java.lang.reflect.Method.invoke(Method.Java:374)
       at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:903)
       at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:698)

Je n'utilise pas PendingIntent peut-être que certaines des bibliothèques font? Le bouton Google n'a jamais été des problèmes avant.

Voici les build.gradles:

App:

apply plugin: 'com.Android.application'
// Apply the Google Services plugin (if it's not there already).
apply plugin: 'com.google.gms.google-services'
// Add the Firebase Crashlytics plugin.
apply plugin: 'com.google.firebase.crashlytics'
Android {
    signingConfigs {
        config {
            
        }
    }
    compileSdkVersion 31
    defaultConfig {
        applicationId "com.name.app"
        minSdkVersion 21
        targetSdkVersion 31

        versionCode 91
        versionName "91"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        signingConfig signingConfigs.config
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    buildToolsVersion "30.0.3"
}

repositories {
    maven { url "https://artifactory.appodeal.com/appodeal" }
    google()
    mavenCentral()
    jcenter()
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'androidx.appcompat:appcompat:1.3.1'
    implementation 'androidx.media:media:1.4.3'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.browser:browser:1.3.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
    implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
    implementation 'com.google.Android.material:material:1.5.0-alpha05'

    implementation 'androidx.activity:activity:1.4.0'

    implementation 'com.jjoe64:graphview:4.2.2'
    implementation 'com.google.firebase:firebase-auth:21.0.1'
    implementation 'com.google.firebase:firebase-core:20.0.0'
    implementation 'com.google.firebase:firebase-database:20.0.2'
    implementation 'com.google.Android.gms:play-services-auth:19.2.0'

    implementation 'com.Android.billingclient:billing:4.0.0'
    implementation 'com.google.firebase:firebase-crashlytics:18.2.4'
    implementation 'androidx.recyclerview:recyclerview:1.2.1'
    testImplementation 'junit:junit:4.13.2'
    implementation 'com.google.Android.ump:user-messaging-platform:2.0.0'
    implementation 'com.google.code.gson:gson:2.8.6'

    implementation 'com.explorestack:consent:1.0.4'
    implementation 'com.google.Android.gms:play-services-ads-identifier:17.1.0'

    androidTestImplementation 'androidx.test:runner:1.4.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
    implementation('com.appodeal.ads:sdk:2.10.2.+') {
        exclude group: 'com.appodeal.ads.sdk.networks', module: 'Amazon_ads'
        exclude group: 'com.appodeal.ads.sdk.networks', module: 'appodeal'
        exclude group: 'com.appodeal.ads.sdk.networks', module: 'nast'
    }
}

Projet:

buildscript {
    
    repositories {
        google()
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:7.0.3'
        classpath 'com.google.gms:google-services:4.3.10'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        maven {
            url "https://maven.google.com"
        }
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Quelqu'un a-t-il vécu quelque chose de similaire? Je n'ai pas été capable de le reproduire.

Il se bloque dans LoginActivity, qui est l'activité de début. Voici le AndroidManifest pour cette partie:

<activity
    Android:name=".LoginActivity"
    Android:label="Name"
    Android:exported="true"
    Android:configChanges="orientation"
    Android:screenOrientation="portrait"
    Android:theme="@style/AppTheme.NoActionBar">
    <intent-filter>
       <action Android:name="Android.intent.action.MAIN" />
            <category Android:name="Android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
       <action Android:name="Android.intent.action.VIEW" />
       <category Android:name="Android.intent.category.DEFAULT" />
       <category Android:name="Android.intent.category.BROWSABLE" />

       <data
           Android:scheme="http"
           Android:Host="name.com" />
    </intent-filter>
</activity>
2
El_Loco

Je rencontre le problème similaire avec vous. Essayez d'ajouter: Mise en œuvre 'AndroidX.Work:work-RunTime:2.7.0' Dans votre fichier de grades pour pouvoir créer votre projet. (Même si vous n'utilisez rien dans cette bibliothèque)

reportez-vous à: https://groups.google.com/g/google-admob-ads-sdk/c/yu5cemkp7fy

1
future666

1.try Mise à jour de vos dépendances

2.Et reconstruire votre projet

0
Manjeet deswal