我有一些问题,现在只有一个问题。
我大约2个月前将我的应用程序部署到Google Play,昨天我收到一封电子邮件,说明应用程序未在设备中打开,并且在打开之前中断,在屏幕上显示“不幸的是,(?)已停止”。它在另一个设备中运行正常,但不在“J3(2016)Android版本5.11的用户”中运行。
我打开了Google Play控制台,在ANR的菜单中查找答案。我找到了这个:
**java.lang.NoSuchMethodError:**
at md5846bd09d5a4e74db0c2de01aa9d1e1cf.MainActivity.n_onCreate (Native Method)
at md5846bd09d5a4e74db0c2de01aa9d1e1cf.MainActivity.onCreate (MainActivity.java:30)
at android.app.Activity.performCreate (Activity.java:6609)
at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1134)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3113)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3275)
at android.app.ActivityThread.access$1000 (ActivityThread.java:218)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1744)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:145)
at android.app.ActivityThread.main (ActivityThread.java:7007)
at java.lang.reflect.Method.invoke (Native Method)
at java.lang.reflect.Method.invoke (Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1199)
我将尝试通过android模拟器重现此错误。有没有人见过这个,知道如何解决,可以帮助我吗?
感谢你们。
看起来您正在使用Android 5的应用程序的本机代码执行某些操作。从显示的注释中,您可以在模拟器中重现此内容。因此,找出问题的下一步是查看您的本机代码,甚至在您的模拟器中使用本机代码调试来找出它失败的原因。
这里有一些关于native code debugging in Androud Studio的文档。
我发现错误发生的地方,感谢上帝!经过漫长的代码分析之后,我发现了我的错误,它与权限请求相关,并且工作方式如下:
- 从Android 6.0到更高版本,应用程序需要请求权限才能使用设备中的某些功能(我做了这个结构)。但是,发生的情况是,低于6.0,不需要请求权限,然后我就发生了冲突。
所以,我做了一个条件结构来验证设备的Android版本,并根据其版本,是否会请求权限。