当依赖的是远程aar,如果混淆保留对应的类

🛠️ 那么如何保留远程依赖 AAR 中的类?

✅ 方法一:在最终 App 的 proguard-rules.pro 中添加规则
如果你的 App 使用了 wifisdk,而 wifisdk 又使用了远程 AAR libvlc-all,那么你应该在最终 App 的 proguard-rules.pro 中添加如下内容:

-keep class org.videolan.libvlc.** { *; }
-keep class org.videolan.libvlc.MediaPlayer$Title { *; }
-keepnames class org.videolan.libvlc.MediaPlayer$Title

这样可以确保即使启用了混淆和 shrink,这些类也不会被移除或重命名。

✅ 方法二:为远程依赖创建 wrapper 并暴露 consumer rules

如果你想更规范地封装第三方 SDK,你可以:

  1. 创建一个新的 Library Module,比如:
:libvlc-wrapper
  1. 在它的 build.gradle 中引入远程依赖:
dependencies {
    implementation 'xxxxxxxxxx'
}
  1. 在 src/main/consumer-rules.pro 中添加保留规则
-keep class org.videolan.libvlc.** { *; }
-keep class org.videolan.libvlc.MediaPlayer$Title { *; }
-keepnames class org.videolan.libvlc.MediaPlayer$Title
  1. 设置 consumerProguardFiles:.
android {
    defaultConfig {
        consumerProguardFiles "consumer-rules.pro"
    }
}
  1. 其他模块依赖这个封装好的模块:
dependencies {
    implementation project(':libvlc-wrapper')
}

方法二好处就是 你只管依赖,混淆规则也不用在 app module 里面写了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容