android studio 4.0(macOs)中的内部类混淆代码

Posted

技术标签:

【中文标题】android studio 4.0(macOs)中的内部类混淆代码【英文标题】:innerclass obfuscation code in android studio 4.0(macOs) 【发布时间】:2020-11-13 21:18:39 【问题描述】:

android studio 4.0(macOs)中的innerclass混淆代码

B是A的内部接口。

proguard-rules.pro:

...
-keep class A$B
-keepclassmembers class A 
public static <methods>;

-keepclassmembers class A$B 
<methods>;

...

mapping.txt:

...
A$B -> A$B:
    ...
...

'B'的名字混淆后变成'A$B',B变成外部接口A$B。

为什么?

现在sdk打包成aar,其他devploer只能用A$B调用B,但我想用A.B调用B。怎么办?3q。

【问题讨论】:

【参考方案1】:

试试这个。

-keepattributes Exceptions,InnerClasses,...
-keep class [packagename].A
    *;

-keep class [packagename].A$* 
    *;

参考: Android proguard, keep inner class

【讨论】:

以上是关于android studio 4.0(macOs)中的内部类混淆代码的主要内容,如果未能解决你的问题,请参考以下文章

此版本的 Android Studio 无法打开此项目,请使用 Android Studio 4.0 或更高版本重试

关于Android老项目在Android Studio 4.0运行的报错

关于Android老项目在Android Studio 4.0运行的报错

Android Studio 4.0 及以上版本技巧及问题总结

Android Studio 4.0 布局检查器不工作

Android Studio 第五十七期 - Android运行时权限4.0至8.0