首页 > 解决方案 > 缺少类: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的要点。谁能知道为什么会发生此错误或解决此错误的替代方法?提前感谢。

标签: android-studiojacksonandroid-r8

解决方案


如果您非常确定如果您稍后在项目中包含 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,希望它有帮助!


推荐阅读