🛠️ 那么如何保留远程依赖 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,你可以:
- 创建一个新的 Library Module,比如:
:libvlc-wrapper
- 在它的 build.gradle 中引入远程依赖:
dependencies {
implementation 'xxxxxxxxxx'
}
- 在 src/main/consumer-rules.pro 中添加保留规则
-keep class org.videolan.libvlc.** { *; }
-keep class org.videolan.libvlc.MediaPlayer$Title { *; }
-keepnames class org.videolan.libvlc.MediaPlayer$Title
- 设置 consumerProguardFiles:.
android {
defaultConfig {
consumerProguardFiles "consumer-rules.pro"
}
}
- 其他模块依赖这个封装好的模块:
dependencies {
implementation project(':libvlc-wrapper')
}
方法二好处就是 你只管依赖,混淆规则也不用在 app module 里面写了。