新:我正在寻找的主要内容是修复错误的行号。这使得几乎不可能查明各种崩溃。
在过去的某个时候,我的 proguard 混淆停止正常工作,或者看起来是这样。在以下日志文件片段中,请注意我的标识符 BasicList 和 ImageClick 显示在文件中。然而,很明显 Proguard 正在运行,因为存在混淆。
其次,对于 BasicList 行,它显示的行号为 6218。我的源文件几乎没有那么多行。需要说明的是,它也不是字符位置。
E/InputEventReceiver( 3814): Exception dispatching input event.
E/MessageQueue-JNI( 3814): Exception in MessageQueue callback: handleReceiveCallback
E/MessageQueue-JNI( 3814): java.lang.NullPointerException
E/MessageQueue-JNI( 3814): at com.perinote.perinote2.BasicList.a(SourceFile:6218)
E/MessageQueue-JNI( 3814): at com.perinote.perinote2.ae.onClick(SourceFile:266)
E/MessageQueue-JNI( 3814): at android.view.View.performClick(View.java:4240)
E/MessageQueue-JNI( 3814): at com.perinote.widgets.ImageClick.onTouchEvent(SourceFile:1156)
E/MessageQueue-JNI( 3814): at android.view.View.dispatchTouchEvent(View.java:7384)
E/MessageQueue-JNI( 3814): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
我的 proguard-project.txt 有以下内容
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-assumenosideeffects class android.util.Log { ... stuff ... }
有任何想法吗?
最佳答案
一旦我遇到一个非常相似的问题,异常调度输入事件,为了解决它,我使用以下行添加代码来保护每个文件夹:
-keep class !com.MyPackage.folderActivity { *; }
如果添加文件夹后混淆失败,您可以使用非常相似的方法逐类添加同一文件夹的类:
-keep class !com.MyPackage.folderActivity.ActivityOne { *; }
一开始这是一个非常缓慢的过程,但随后很容易维护。
嗯,我希望这有用。
关于android-studio - Android Studio : proguard line numbers wrong, 没有完全混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37194963/