android-studio - 缺少类:com.fasterxml.jackson.core.type.TypeReference。R8:警告
问题描述
在我将 Android Studio 更新到 3.5 之后,每当我构建我的项目时,我都会面临以下警告。
缺少类:com.fasterxml.jackson.core.type.TypeReference
我的项目正在使用AndroidX。这是我的build.gradle (app) https://gist.github.com/Arkar009/4ae5a05ff3435636bc605fee1fbdb050的要点。谁能知道为什么会发生此错误或解决此错误的替代方法?提前感谢。
解决方案
如果您非常确定如果您稍后在项目中包含 Jackson,您会记住这一行,这可以解决问题(将其添加到项目的 proguard-project.[txt|pro] 文件中):
-dontwarn com.fasterxml.jackson.core.type.TypeReference
该类以某种方式包含在 R8 中的缺失类集中(我在 R8 的代码中没有走那么远),但是如果您在“不警告”规则的模式列表中获得该类,则可以跳过警告(见 com/android/tools/r8/R8.java):
List<ProguardConfigurationRule> synthesizedProguardRules = new ArrayList<>();
timing.begin("Strip unused code");
Set<DexType> classesToRetainInnerClassAttributeFor = null;
try {
Set<DexType> missingClasses = appView.appInfo().getMissingClasses();
missingClasses = filterMissingClasses(
missingClasses, options.getProguardConfiguration().getDontWarnPatterns());
if (!missingClasses.isEmpty()) {
missingClasses.forEach(
clazz -> {
options.reporter.warning(
new StringDiagnostic("Missing class: " + clazz.toSourceString()));
});
TBH,我也被这个警告困扰到进入 R8,希望它有帮助!
推荐阅读
- javascript - Vue v-for 只展开点击的数据
- r - 比较两组数据的出现情况
- c# - 创建一个包含具有匿名类型的新表达式的 lambda 表达式
- javascript - React:如何在组件的生命周期中只调用一次方法,只要 data.loading 为 false
- python - 从网页获取脚本函数内部的信息
- python - 安装 matplotlib Python 时出错
- react-native - 如何在 React Navigation 中选择性地显示模式?
- php - Reg Exp - preg_match_all 减少数组结果
- r - 文本清理和合并
- excel - 以相同字符串开头的命名范围通配符