Android Studio构建失败并显示消息:找不到符号'@IntDef',但是IDE中显示的Java代码未显示错误,如您在链接中所看到的,该类已成功导入,我可以在“外部库”,也可以在使用gralew xxx --debug --stacktrace运行时在构建路径中找到它。
我正在将Google的Chrome项目迁移到Android Studio项目中,提交ID为'b4a3bf71d7762468ad6ecf2e1461ff2135473063'。混合了support.v4。*和androidx.annotation和androidx.browser的代码,我将gradle.properties修改为'android.useAndroidX = true'和'android.enableJetifier = false',以便Android Studio显示两个软件包均已成功导入,但由于出现“找不到符号”错误而无法构建。
而且,我已经编写了一个简单的演示来证明混合使用是可以的,但我对此表示怀疑。我还删除了源目录中所有可能的none-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。