如何修复 androidstudio 发布版本中的“类 dgb$a 中没有公共 dispose()

在调试版本中编译我的应用程序时,我没有收到任何错误。但是当在发行版中编译时,我收到运行时错误。


我不知道到底从哪里开始,因为所有的指针都指向一个未知的来源。


我无法复制此错误,因为如前所述,所有指针都没有帮助,所以我不知道问题来自何处/何处


下面是运行时错误。


2019-11-02 21:12:45.696 22451-22471/? E/AndroidRuntime: FATAL EXCEPTION: GLThread 37524

    Process: flappy.birb, PID: 22451

    java.lang.RuntimeException: There is no public dispose() method in the class d.g.b$a

        at d.c.a.c(Unknown Source:5)

        at d.c.a.b(Unknown Source:99)

        at d.c.a.a(Unknown Source:64)

        at d.g.b.<init>(Unknown Source:203)

        at d.g.b.a(Unknown Source:6)

        at d.g.g.<init>(Unknown Source:10)

        at d.g.a.<init>(Unknown Source:0)

        at d.g.f.<init>(Unknown Source:0)

        at flappy.birb.a.v0(Unknown Source:4)

        at flappy.birb.a.f0(Unknown Source:3)

        at flappy.birb.a.S(Unknown Source:16)

        at d.c.a.u(Unknown Source:62)

        at d.f.j$b.onDrawFrame(Unknown Source:13)

        at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1580)

        at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1275)

这不是空指针错误,因此建议的帖子没有帮助。如果它是一个空指针,我会在我的调试版本中得到它,正如前面所说,这不会发生。


你必须正确配置混淆器。如果你使用过外部库,也复制他们的 proguard 规则 -Touhidul Islam


.


似乎有人对代码运行了混淆器,但做得不对。如果你的代码被混淆了?– 安德烈亚斯


ITMISS
浏览 36回答 1
1回答

杨__羊羊

看来你proguard只是清理那个来源。将下一个配置添加到您的proguard文件中。-keep class <class where dispose is called>.** {   *;   }更新:为了确保这不是proguard问题,您需要手动禁用它。尝试为您的构建类型设置下一个选项。    minifyEnabled false     useProguard false
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java