【问题标题】:Application stops before showing anything应用程序在显示任何内容之前停止
【发布时间】:2019-03-26 18:15:57
【问题描述】:

我有一些问题,现在只有一个。

大约 2 个月前,我将我的应用程序部署到 Google Play,昨天我收到一封电子邮件,内容是该应用程序无法在设备中打开并且在打开之前就中断了,屏幕上显示“不幸的是,(?) 已停止”。它在另一台设备上正常运行,但在“J3 (2016) android version 5.11's user”中不运行。

我打开了 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 次要版本吗?
  • 嗯,错误说该方法不可用,这意味着它是 v5.1 中不可用的 API
  • 我尝试使用 Lollipop 5.1.1 通过 Android Emulator 模拟我的应用程序,但我遇到了同样的错误。调试器向我返回此消息:“Java.Lang.LinkageError:”。
  • 我的意思是一个物理设备@Batuhan

标签: android xamarin.forms xamarin.android google-console-developer


【解决方案1】:

看起来您正在应用的本机代码中执行 Android 5 不支持的操作。从 cmets 看来,您可以在模拟器中重现该代码。因此,找出问题所在的下一步是查看您的本机代码,甚至在您的模拟器中使用本机代码调试来找出它失败的原因。

这里有一些关于native code debugging in Androud Studio 的文档。

【讨论】:

  • 我在 Visual Studio 上的 Xamarin 中开发了这个应用程序。使用 Android Studio 调试器,我可以调试在我的模拟器中运行的应用程序吗?它是正确的?看起来有点混乱。我该怎么做?
  • 抱歉,我对 Xamarin 了解不多。 Microsoft 似乎在这里有一些文档:docs.microsoft.com/en-us/xamarin/android/deploy-test/debugging/… 但我从未尝试过
  • 别抱歉,没关系。感谢您的帮助。我从这个文档中阅读了一些内容,但在 Xamarin 中只能调试 C#,而不是 Native。顺便说一句,我注意到这个应用程序只能从 6.0 运行到更高版本,所以我将我的 Android Manifest 的最低版本更改为 6.0。
【解决方案2】:

我找到了错误发生的地方,感谢上帝!经过一天漫长的代码分析,我发现了我的错误,它与权限请求有关,并且是这样的:

-从 Android 6.0 到更高版本,应用程序需要请求许可才能使用设备的某些功能(我做了这个结构)。但是结果是,到6.0以下,不需要请求权限,然后我就发生了冲突。

所以,我做了一个条件结构来验证设备的 Android 版本,并根据其版本,是否会请求权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 2017-04-30
    • 1970-01-01
    • 2013-01-13
    • 2012-10-15
    相关资源
    最近更新 更多