我完全按照这里提到的做了:http://developer.android.com/tools/help/proguard.html。我在apk上签名了
下面是从LogCat窗口保存的日志:
07-20 20:00:40.457: W/dalvikvm(4209): threadid=1: thread exiting with uncaught exception (group=0x410739a8)
07-20 20:00:40.461: E/AndroidRuntime(4209): FATAL EXCEPTION: main
07-20 20:00:40.461: E/AndroidRuntime(4209): java.lang.NullPointerException
07-20 20:00:40.461: E/AndroidRuntime(4209): at com.example.aproguardsample.b.a(Unknown Source)
07-20 20:00:40.461: E/AndroidRuntime(4209): at com.example.aproguardsample.a.onClick(Unknown Source)
07-20 20:00:40.461: E/AndroidRuntime(4209): at android.view.View.performClick(View.java:4211)
07-20 20:00:40.461: E/AndroidRuntime(4209): at android.view.View$PerformClick.run(View.java:17446)
07-20 20:00:40.461: E/AndroidRuntime(4209): at android.os.Handler.handleCallback(Handler.java:725)
但是在执行此命令(两次,带或不带-verbose参数)之后:
retrace.bat -verbose mapping.txt log.txt > out.txt
retrace.bat mapping.txt log.txt > out.txt
将创建包含与log.txt完全相同数据的out.txt文件。
我不知道我做错了什么。我在另一个SDK和Eclipse版本上对相同的过程进行了两次测试,但结果是相同的。还要注意映射文件和日志文件的版本是相同的。我可以解决它。我从SourceForge.com下载了最新版本的ProGuard,它的retrace.bat工作得很好:-)