gpt4 book ai didi

android - 如何在 Android 上修复混淆器 NoSuchMethodException

转载 作者:太空宇宙 更新时间:2023-11-03 13:04:38 25 4
gpt4 key购买 nike

我混淆了 Lite 和一个完整的项目,它们都引用了一个库项目。在运行时我收到“NoSuchMethodException myMethod”错误

根据 http://proguard.sourceforge.net/index.html#/manual/troubleshooting.html我必须将以下内容添加到 proguard.cfg

-keep class mypackage.MyClass { void myMethod(); }

我的方法返回一个字符串并接受 3 个字符串参数,所以我将以下内容添加到 proguard.cfg

-keep public class com.mycompany.appName.MyClass { 
String myMethod(String, String, String);
}

但我仍然得到同样的错误。

假设我正在构建精简版 com.mycompany.appName.lite,我假设我不必更改添加到 proguard.cfg 的行中的包名称,因为它是一个引用库。

有什么我想念的吗?谢谢。

最佳答案

我发现调试 ProGuard 是黑魔法,您可能需要验证 keep 参数是否确实按预期执行。

我一直在使用我创建的探测方法:

http://code.google.com/p/android-beryl/source/browse/beryl-core/src/org/beryl/diagnostics/Log.java

Log.inspectClass(MyClass.class);

然后我要做的是监视转储到 LogCat 的类定义。您还可以查看 proguard/目录中的文件以了解发生了什么。但我觉得这很难。

对于您的情况,我会先从非常松散的内容开始,然后努力收紧类(class)。

-keep class com.mycompany.appName.MyClass {
*;
}

关于android - 如何在 Android 上修复混淆器 NoSuchMethodException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6529237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com