【问题标题】:Can not resolve import LocalBroadcastManager on statement android.support.v4.content.LocalBroadcastManager;无法解析声明 android.support.v4.content.LocalBroadcastManager 上的导入 LocalBroadcastManager;
【发布时间】:2018-06-29 08:05:32
【问题描述】:

我在将 Eclipse 项目导入 Android Studio 时遇到此错误。它显示了一个建议将库Gradle: com.android.support:support-core-utils-27.1.1 添加到类路径。我已将库添加到我的 build.gradle 文件中。

这是我的 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'
            }
        }
    }
}
}

我用谷歌搜索了它,但找不到合适的解决方案。但是,我尝试了this 的解决方案,但这不是正确的解决方案。任何帮助表示赞赏?

【问题讨论】:

  • 你尝试Clean Project然后Make Project在android studio的构建标签?

标签: android broadcastreceiver localbroadcastmanager


【解决方案1】:

这发生在我为 AndroidX 迁移时,解决方案是将“import androidx.core.content.LocalBroadcastManager;”替换为import androidx.localbroadcastmanager.content.LocalBroadcastManager;

已编辑,根据需要包含实现,请不要忘记依赖:

implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'

注意目标和构建版本是:

compileSdkVersion 29
buildToolsVersion '29.0.2'

【讨论】:

  • 正如 Dennis 在另一个答案中所说,确保您也包含依赖项: implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
  • 此解决方案在 SDK 版本 28 中运行良好,但在 SDK 版本 29 中无法解决问题。
  • 解决方案适用于:'compileSdkVersion 29 buildToolsVersion'29.0.2''
【解决方案2】:

对于较新的 Android 版本,您应该尝试将其添加到 gradle.properties

android.enableJetifier=true

然后将此依赖添加到 build.gradle

implementation 'androidx.legacy:legacy-support-v4:1.0.0'

【讨论】:

  • 依赖正确但不需要android.enableJetifier=true
【解决方案3】:

使用这个

导入androidx.localbroadcastmanager.content.LocalBroadcastManager;

而不是

导入androidx.core.content.LocalBroadcastManager;

【讨论】:

    【解决方案4】:

    我遇到了同样的问题,然后我注意到 Google 将 v4 支持库划分为多个包。

    注意:在支持库版本 24.2.0 之前,只有一个 v4 支持库。该库被分为多个模块以提高效率。为了向后兼容,如果您在 Gradle 脚本中列出 support-v4,您的 APK 将包含所有 v4 模块。但是,为了减小 APK 大小,我们建议您仅列出应用所需的特定模块。

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

    然后我检查了 LocalBroadcast 页面。 https://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager

    页面顶部有说明

    属于 Maven 神器 com.android.support:localbroadcastmanager:28.0.0-alpha1

    当我遇到这个问题时,v28.0.0(非 alpha)已经可用。

    最后,我更改了build.gradle 中的设置。

    之前

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

    之后

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

    AndroidX

    implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
    

    【讨论】:

    • 对于androidx,您可以使用:implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
    • 您现在可以将implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0' 替换为新的:implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' & 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
    【解决方案5】:

    经过大量搜索和研发,我找到了一些解决方案。这对我有用,希望对您有所帮助。

    implementation 'androidx.legacy:legacy-support-core-utils:1.0.0'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-28
      • 2023-04-02
      • 2012-12-27
      • 1970-01-01
      • 2013-04-23
      • 2022-06-01
      • 2015-02-15
      • 1970-01-01
      相关资源
      最近更新 更多