我在Play商店中发布了一个启用了proguard规则的应用,并且我收到了来自Android 4.4和4.2的一些错误报告,并带有此跟踪错误
java.lang.IllegalStateException:
at android.view.View$1.onClick (View.java:3949)
at android.view.View.performClick (View.java:4633)
at android.view.View$PerformClick.run (View.java:19270)
at android.os.Handler.handleCallback (Handler.java:733)
at android.os.Handler.dispatchMessage (Handler.java:95)
at android.os.Looper.loop (Looper.java:146)
at android.app.ActivityThread.main (ActivityThread.java:5602)
at java.lang.reflect.Method.invokeNative (Method.java)
at java.lang.reflect.Method.invoke (Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1099)
at dalvik.system.NativeStart.main (NativeStart.java)
Caused by: java.lang.NoSuchMethodException:
at java.lang.Class.getConstructorOrMethod (Class.java:472)
at java.lang.Class.getMethod (Class.java:857)
at android.view.View$1.onClick (View.java:3942)
at android.view.View.performClick (View.java:4633)
at android.view.View$PerformClick.run (View.java:19270)
at android.os.Handler.handleCallback (Handler.java:733)
at android.os.Handler.dispatchMessage (Handler.java:95)
at android.os.Looper.loop (Looper.java:146)
at android.app.ActivityThread.main (ActivityThread.java:5602)
at java.lang.reflect.Method.invokeNative (Method.java)
at java.lang.reflect.Method.invoke (Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1099)
at dalvik.system.NativeStart.main (NativeStart.java)
由于没有引用被调用的method
或Activity
,并且我无法复制它,因此我不知道该如何解决。 (尽管有些类在kotlin中,但大多数项目在Java中)
在proguard文件中,我排除了域模型和一些改进的类,例如:
# Application classes that will be serialized/deserialized over Gson
-keep class com.example.mypackage.DataModel.** { *; }
-keep class com.example.mypackage.WS.** { *; }
提前感谢!
[我已经忘记了,在旧的Android版本中,当您从AppCompatView扩展自定义视图时,所有xml onClick属性将不再起作用,并且会引发NoSuchMethodException。
您可以在这里找到一些参考: