web-dev-qa-db-fra.com

Impossible de résoudre l'importation LocalBroadcastManager sur l'instruction Android.support.v4.content.LocalBroadcastManager;

J'ai obtenu cette erreur lors de l'importation d'un projet Eclipse dans Android studio. Il montre une suggestion Ajouter une bibliothèque Gradle: com.Android.support:support-core-utils-27.1.1 vers classpath. J'ai ajouté la bibliothèque dans mon build.gradle fichier.

Voici mon dossier gradle.

apply plugin: 'com.Android.application'

Android {
compileSdkVersion 27
buildToolsVersion "28.0.0"

defaultConfig {
    applicationId "com.example.tracking"
    minSdkVersion 17
    targetSdkVersion 27
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.txt'
    }
}
}

allprojects {
repositories {
    google()

}
}

dependencies {


implementation project(':asciiProtocol')
implementation project(':deviceList')
implementation project(':captureActivity')
implementation 'com.Android.support:support-v4:27.1.1'
implementation 'com.Android.support:appcompat-v7:27.1.1'
implementation "com.Android.support:support-core-utils:27.1.1"
implementation 'com.google.code.gson:gson:2.8.2'
implementation 'com.google.code.gson:gson:2.8.2'
implementation 'com.google.code.gson:gson:2.8.2'
implementation files('libs/opencsv-2.3.jar')
implementation files('libs/rfid.reader.api.jar')
implementation files('libs/scannercontrol.jar')
implementation files('libs/Zebra.jar')

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.Android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '27.1.1'
            }
        }
    }
}
}

Je l'ai googlé mais je n'ai pas pu trouver de solution appropriée à cela. Cependant, j'ai essayé la solution de this qui n'est pas la bonne solution. Toute aide est appréciée?

14
Jack

J'ai rencontré le même problème, puis j'ai remarqué que Google a divisé la bibliothèque de support v4 en plusieurs packages.

Remarque: Avant la révision de la bibliothèque de support 24.2.0, il existait une seule bibliothèque de support v4. Cette bibliothèque a été divisée en plusieurs modules pour améliorer l'efficacité. Pour une compatibilité ascendante, si vous répertoriez support-v4 dans votre script Gradle, votre APK inclura tous les modules v4. Cependant, pour réduire la taille de l'APK, nous vous recommandons de répertorier les modules spécifiques dont votre application a besoin.

https://developer.Android.com/topic/libraries/support-library/packages#v4

Ensuite, j'ai vérifié la page LocalBroadcast. https://developer.Android.com/reference/Android/support/v4/content/LocalBroadcastManager

En haut de la page, il y a une description

appartient à l'artefact Maven com.Android.support:localbroadcastmanager:28.0.0-alpha1

Lorsque j'ai rencontré ce problème, la v28.0.0 (pas alpha) était disponible.

Au final, j'ai changé les paramètres dans mon build.gradle.

avant

implementation 'com.Android.support:support-v4:28.0.0'

après

implementation 'com.Android.support:localbroadcastmanager:28.0.0'

AndroidX

implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
19
wf9a5m75

Cela m'est arrivé lors de la migration pour AndroidX et la solution a été de remplacer "import androidx.core.content.LocalBroadcastManager;" avec import androidx.localbroadcastmanager.content.LocalBroadcastManager;

Modifié, comme requis pour inclure l'implémentation, n'oubliez pas la dépendance:

implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'

Notant que la version Target & Build est:

compileSdkVersion 29
buildToolsVersion '29.0.2'
10
Atef Farouk