我有一个严重的错误,我似乎无法修复或调试正确。在安卓12或更高版本的闪屏上,这款应用一直在崩溃,而我个人在安卓12以下(带模拟器和我自己的手机)和安卓12以上(带模拟器)都能用。遗憾的是,Google Play商店只允许SDK版本12或更高版本的应用程序捆绑包,这会导致此崩溃。
用户看到splashscreen真的很快,然后它立即崩溃。它位于MainActivity的onCreate方法上,但我尝试了很多方法,似乎找不到它。
如果任何人知道一种方法来重现这一本地,知道任何关于这一崩溃或可以指出我在正确的方向,那么这将是真的很棒!
我已经遵循了一个关于如何制作新的Android 13 splashscreen的教程,但应用程序仍然以同样的方式崩溃。
Google Play控制台崩溃报告:
Exception android.runtime.JavaProxyThrowable:
at crc647e6e9d558d510f83.MainActivity.n_onCreate (MainActivity.java)
at crc647e6e9d558d510f83.MainActivity.onCreate (MainActivity.java:40)
at android.app.Activity.performCreate (Activity.java:8591)
at android.app.Activity.performCreate (Activity.java:8570)
at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1384)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:4150)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:4325)
at android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:101)
at android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2574)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loopOnce (Looper.java:226)
at android.os.Looper.loop (Looper.java:313)
at android.app.ActivityThread.main (ActivityThread.java:8757)
at java.lang.reflect.Method.invoke
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1067)
(from我可以找到这是一个一般性的错误,因为应用程序崩溃之前,可以发送正确的错误,我不知道如何更改为代码,它显示正确的错误)
此外,当添加或删除代码时,它仍然会在第40行抛出错误。所以我看不出是哪个部分抛出了错误。
这是MainActivity当前的样子:
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
{
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
这是我做的一个新的测试项目,仍然会导致应用程序崩溃。这是由Visual Studio中的Xamarin框架生成的代码。
我尝试过的事情:
- 让用户多次重新安装应用
- 让用户删除应用程序并重新安装
- 让用户更新应用
- 使用户删除应用程序的本地缓存
- Android 13 SplashScreen
- 更新了所有使用的工具,除了仍然使用NetStandard2.0
- 在尝试更新到较新的NetStandard6.5时出现了很多错误
- 正在查找JavaProxyThrowable错误
- 我也尝试了TryCatch,但它挂在闪屏上,没有做任何事情
这是我使用的软件: - 更新Visual Studio 2022
- Nexus 5X API 33(Android 13.0 - API 33)模拟器
- 在这个模拟器上完美工作(不知道如何与这些崩溃)
- Nexus 5X Pie 9.0 - API 28(Android 9.0 - API 28)模拟器(也可以)
- 我自己的三星Android手机与低Android版本(也工作)
- Xamarin Essentials版本1.7.5(最新)
- Xamarin Forms版本5.0.0.2578
- Xamarin CommunityToolKit版本2.0.6
1条答案
按热度按时间7uhlpewt1#
更新:显然,这是代码中的一些东西,当用户已经有了上一个应用程序的cookie时加载。因为我们采用了一个较旧的版本,并与android 13一起构建,并且该版本可以工作。非常令人失望的是,这些错误并没有清楚地显示在playstore开发环境中。这让我觉得这可能是一个闪屏相关的错误。我将看看crashlytics有一个更好的日志与错误。谢谢你的建议。