You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级至Android Studio Dolphin后R8编译缺失Facebook相关类求助

解决Android Studio Dolphin版本下R8缺失Facebook Nullsafe类的编译警告

问题根源

你遇到的R8警告是因为Facebook广告 mediation库(com.google.ads.mediation:facebook:6.11.0.1)依赖了com.facebook.infer.annotation包下的注解类,但这些类并没有被包含在mediation库中,R8在代码压缩/混淆阶段检测到引用却找不到对应类,因此抛出警告。


方案1:添加缺失的依赖库(推荐)

直接在build.gradle的dependencies块中引入Facebook Infer注解库,让R8能找到缺失的类:

dependencies {
    // 原有依赖保持不变...
    
    // 添加Facebook Infer注解依赖,解决Nullsafe类缺失问题
    implementation 'com.facebook.infer:infer-annotation:0.18.0'
}

方案2:通过ProGuard规则保留/忽略缺失类

如果不想新增依赖,可以通过ProGuard规则处理:

  1. 保留缺失类(稳妥方案)
    在你的proguard-rules.pro和proguard-rules-debug.pro文件中添加以下规则:

    # 保留Facebook Nullsafe相关注解类
    -keep class com.facebook.infer.annotation.Nullsafe {*;}
    -keep class com.facebook.infer.annotation.Nullsafe$Mode {*;}
    
  2. 直接忽略缺失类警告(仅消除提示,不推荐)
    在build.gradle的android块中,为每个buildType添加R8配置:

    android {
        // 原有配置保持不变...
        
        buildTypes {
            release {
                minifyEnabled true
                shrinkResources true
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
                
                // 关闭缺失类的强制检查
                android.r8 {
                    forceMissingClasses false
                }
            }
            debug {
                minifyEnabled true
                shrinkResources true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-debug.pro'
                
                android.r8 {
                    forceMissingClasses false
                }
            }
        }
    }
    

内容的提问来源于stack exchange,提问作者Rafiqullah Taibzada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 03:01:22