Android 库模块开启 isMinifyEnabled=true 时,R8 各自独立混淆, 将内部类重命名为 a.a / a.b 等短名打进 AAR;多个 AAR 合并到 App 时产生 Duplicate class 冲突。 修复:删除全部 7 个库模块 buildTypes.release 中的 isMinifyEnabled, 混淆由 App 的 R8 统一完成。将 proguard-rules.pro 中的保留规则 (manifest 注册类、反射调用入口、dontwarn)合并进各模块的 consumer-rules.pro 随 AAR 打包。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
26 行
1.5 KiB
Prolog
26 行
1.5 KiB
Prolog
# sdk-license consumer ProGuard rules
|
|
|
|
# ── Public API entry points ───────────────────────────────────────────────────
|
|
-keep class com.xuqm.sdk.license.LicenseSDK { *; }
|
|
-keep class com.xuqm.sdk.license.LicenseConfig { *; }
|
|
-keep class com.xuqm.sdk.license.LicenseResult { *; }
|
|
-keep class com.xuqm.sdk.license.LicenseStatus { *; }
|
|
-keep class com.xuqm.sdk.license.model.** { *; }
|
|
|
|
# ── Gson: preserve field names on all SDK model classes ──────────────────────
|
|
-keepclassmembers class com.xuqm.sdk.license.** {
|
|
@com.google.gson.annotations.SerializedName <fields>;
|
|
}
|
|
|
|
# ContentProvider: class name referenced in AndroidManifest — must not be renamed
|
|
-keep class com.xuqm.sdk.license.internal.LicenseInitializerProvider
|
|
|
|
# ── Kotlinx serialization ─────────────────────────────────────────────────────
|
|
-keepclassmembers @kotlinx.serialization.Serializable class ** { *; }
|
|
-keep class kotlinx.serialization.** { *; }
|
|
|
|
# ── Retrofit / OkHttp ────────────────────────────────────────────────────────
|
|
-keepattributes Signature
|
|
-keepattributes *Annotation*
|
|
-keepattributes InnerClasses, EnclosingMethod
|