java - 奇怪的是找不到符号 '@IntDef' 但 Android Studio 没有显示错误

标签 java android annotations chromium androidx

my Android Studio screenshot

Android Studio 构建失败并显示消息:找不到符号“@IntDef”,但是 IDE 中显示的 java 代码没有显示错误,正如您在链接中看到的,该类已成功导入,我可以在Android Studio 的项目 View 中的“外部库”,在使用 gralew xxx --debug --stacktrace 运行时,我也在构建路径中找到了它。

我正在将 google 的 chromium 项目迁移到 Android Studio 项目中,提交 ID 为“b4a3bf71d7762468ad6ecf2e1461ff2135473063”。将 support.v4.* 与 androidx.annotation 和 androidx.browser 混合的代码,我用“android.useAndroidX=true”和“android.enableJetifier=false”修改了 gradle.properties,以便 Android Studio 显示两个包均已成功导入,但无法构建并出现“找不到符号”错误。

另外,我写了一个简单的演示来证明混合使用是可以的,但我对此表示怀疑。我还删除了源目录中所有可能的非java文件,包括python-script、OWNERS、DEPS、一些aidl文件,但仍然得到相同的错误。我不知道为什么会出现构建错误。

也许 build.gradle 文件会导致此错误?

rootProject.ext.clsDefineChromiumFlavors(project)

sourceSets {
    main.java.srcDirs += 'src/deps/java'

    main.res.srcDirs += 'src/main/res_chromium'
    main.res.srcDirs += 'src/main/res_template'
    main.res.srcDirs += 'src/main/res_vr'

    abi_arm32 {
        java.srcDirs += 'flavor_src/abi_arm32/annotation_processor_output/java'
        java.srcDirs += 'flavor_src/abi_arm32/input_srcjars/java'
        java.srcDirs += 'flavor_src/abi_arm32/others/java'

        res.srcDirs += 'flavor_res/abi_arm32/chrome/res'
        res.srcDirs += 'flavor_res/abi_arm32/chrome/app/policy/res'
        res.srcDirs += 'flavor_res/abi_arm32/components/strings/res'
    }
    abi_arm64 {

    }
}

闭包定义在这里:

// closure: define chromium flavors
ext.clsDefineChromiumFlavors = { curProject ->
    if (curProject == null) {
        return
    }
    curProject.android.flavorDimensions 'default'
    curProject.android.productFlavors {
        abi_arm32 {}
        abi_arm64 {}
        all { flavor ->
            curProject.android.sourceSets[flavor.name].setRoot("flavor_src/${flavor.name}")
        }
    }
}

最佳答案

SuppressLint 是在 API 级别 16 中添加的,因此您需要升级到 API 级别 16。

另一个解决方案是将 appcompat-v7 添加到您的项目 build.gradle。

此外,请确保包含此内容:

implementation "androidx.annotation:annotation:1.1.0"

关于java - 奇怪的是找不到符号 '@IntDef' 但 Android Studio 没有显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60669487/

相关文章:

java - 从 UncaughtExceptionHandler 抛出异常

android - 方法 openOrCreateDatabase(String, int, null) 未定义

ios - Swift map 套件注解

java - String 是如何调用构造函数的?

java - 在 Activity 之间共享 ArrayList 的良好编程实践

java - 我无法运行一个非常简单的 maven java web 应用程序

java - Spring 和 Hibernate3 的 @Embeddable 问题

android - 将受信任的 SSL 证书添加到为 API 8 设计的应用程序

android - 针对导致问题的不同密度优化应用程序

c#-4.0 - 使用 iTextSharp 从 PDF 中读取复选框、单选按钮名称和值