应用反混淆后启动崩溃,寻求ProGuard规则配置帮助
解决方案
问题根源
错误日志核心报错:java.lang.NoSuchMethodError: no static or non-static method "Lorg/libsdl/app/SDLActivity;.onNativeSoftReturnKey()Z",说明ProGuard在混淆过程中,将SDLActivity类的onNativeSoftReturnKey()方法移除或重命名,导致Native层代码无法找到该方法,最终触发启动崩溃。
混淆规则配置
打开项目中的proguard-rules.pro文件,添加以下规则之一:
方式1:保留SDLActivity类所有内容(简单直接)
-keep class org.libsdl.app.SDLActivity { *; }
方式2:仅保留指定方法(更精准)
-keepclassmembers class org.libsdl.app.SDLActivity { boolean onNativeSoftReturnKey(); }
验证步骤
添加规则后重新构建Release版本,启动应用检查是否仍出现崩溃。若后续出现其他类似NoSuchMethodError,需将对应类或方法补充到混淆保留规则中。
内容的提问来源于stack exchange,提问作者Martin N
相关产品推荐
相关产品推荐

