Xamarin android 13.0仅针对特定用户在splashscreen上崩溃(JavaProxyThrowable)

qvtsj1bj  于 2023-06-27  发布在  Android
关注(0)|答案(1)|浏览(112)

我有一个严重的错误,我似乎无法修复或调试正确。在安卓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
7uhlpewt

7uhlpewt1#

更新:显然,这是代码中的一些东西,当用户已经有了上一个应用程序的cookie时加载。因为我们采用了一个较旧的版本,并与android 13一起构建,并且该版本可以工作。非常令人失望的是,这些错误并没有清楚地显示在playstore开发环境中。这让我觉得这可能是一个闪屏相关的错误。我将看看crashlytics有一个更好的日志与错误。谢谢你的建议。

相关问题