我是新手,在工作的同时还在学习。我正在尝试构建我的Android应用程序,我使用我的物理设备(Android 6.0 API 23)。
如果我调试或发布应用程序正在编译和构建没有任何错误和崩溃,并在我的其他物理设备上工作。但如果我切换到R8(我需要在Google Play上发布),它就会崩溃。它甚至无法加载主页。停留在启动界面和Visual Studio 2022社区版中,我可以看到"中断模式下的应用程序"。
我不能解决这个问题:警告:缺少类android.window.OnBackInvokedCallback(引用自:android.window.OnBackInvokedCallback android. activity. onbackpresseddispatcher . monbackinvokedcallback和其他4个上下文)
我安装了最新的Nuget包和
Xamarin.AndroidX。活动1.6.1
Xamarin.AndroidX.Activity.Compose" 1.6.1
Xamarin.AndroidX.Activity。Ktx 1.6.1
Xamarin.AndroidX。AppCompat 1.5.1.1
Xamarin.AndroidX.Core"1.9.0.1
Xamarin.AndroidX.Legacy.Support.Core.UI"1.0.0.16
Xamarin.AndroidX.Lifecycle.Runtime"2.5.1.1
Xamarin.AndroidX.Navigation。常见2.5.3
Xamarin.AndroidX.Navigation。运行时2.5.3
Xamarin.AndroidX。窗口1.0.0.10
Xamarin.AndroidX.Window。WindowExtensions 1.0.0.10-alpha01
但是我仍然不能解决这个问题。我找了很多,但没能找到正确的解决方案。
如果有人能帮忙,我将非常感激!
在platform/android/
文件夹中创建r8.cfg
(只需创建一个类并将其重命名)
添加r8.cfg
:
-keep class android.window.** { *; }
-dontwarn android.window.**
或
-keep class android.window.OnBackInvokedCallback
-dontwarn android.window.OnBackInvokedCallback
在属性窗口中单击r8.cfg
set build action toproguardConfiguration
。
这个问题的发生是因为t8Shrinker收缩了这些类,你可以按照这些操作解决任何未发现的问题,因为打开r8,只需将类名更改为未发现类名(有些类是抽象的或接口的,你也应该保留它们的子类)。