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/