我检查了允许安装未知来源的应用。
java.lang.RuntimeException:无法获取提供者mono.MonoRuntimeProvider:java.lang.RuntimeException:无法找到应用程序Mono.Android.Platform.ApiLevel_24或Xamarin.Android.Platform!E / AndroidRuntime(8048):at android .app.ActivityThread.installProvider(ActivityThread.java:5571)E / AndroidRuntime(8048):在android.app.ActivityThread.installContentProviders(ActivityThread.java:5163)E / AndroidRuntime(8048):at android.app.ActivityThread.handleBindApplication (ActivityThread.java:5103)E / AndroidRuntime(8048):在android.app.ActivityThread.access $ 1600(ActivityThread.java:177)E / AndroidRuntime(8048):在android.app.ActivityThread $ H.handleMessage(ActivityThread。 java:1510)E / AndroidRuntime(8048):在android.os.Handler.dispatchMessage(Handler.java:102)E / AndroidRuntime(8048):在android.os.Looper.loop(Looper.java:145)E / AndroidRuntime(8048):在android.app.ActivityThread.main(ActivityThread.java:5951)E / AndroidRuntime(8048):at java.lang.reflect.Method.invok e(Native Method)E / AndroidRuntime(8048):at java.lang.reflect.Method.invoke(Method.java:372)E / AndroidRuntime(8048):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:1388)E / AndroidRuntime(8048):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)E / AndroidRuntime(8048):引起:java.lang.RuntimeException:Unable找到应用程序Mono.Android.Platform.ApiLevel_24或Xamarin.Android.Platform!E / AndroidRuntime(8048):at mono.MonoRuntimeProvider.attachInfo(MonoRuntimeProvider.java:38)E / AndroidRuntime(8048):at android.app.ActivityThread .installProvider(ActivityThread.java:5568)E / AndroidRuntime(8048):... 11 moreE / AndroidRuntime(8048):引起:android.content.pm.PackageManager $ NameNotFoundException:Xamarin.Android.PlatformE / AndroidRuntime(8048) :在android.app.ApplicationPackageManager.getApplicationInfo(ApplicationPackageManager.java:305)E / AndroidRuntime(8048):at mono.MonoRuntimeProvider.attachInfo(MonoRu) ntimeProvider.java:32)E / AndroidRuntime(8048):... 12 moreV / ApplicationPolicy(3137):isApplicationStateBlocked userId 0 pkgname com.mycomp.test1W / ActivityManager(3137):强制完成活动com.mycomp.test1 / md5414c3d8510d5c9d2b651f345e03d9f02。 SplashScreenActivityE / android.os.Debug(3137):ro.product_ship = true
我的应用程序安装在我的所有设备中..包括开发和非开发设备
但它没有安装在我客户的设备中
答案 0 :(得分:4)
您提供的应用程序没有附加 mono.runtime 作为应用程序的一部分。
您可以在开发计算机上运行该应用,因为 mono.runtime 已安装在这些设备中。
如果您转到应用程序管理器,那么您可以在那里找到 mono.runtime
只需卸载 mono.runtime 然后重新启动设备,然后安装应用程序并将其打开,它就会崩溃。
因为app和device都没有mono.runtime。
因此,要解决此问题,您必须取消选中使用共享Mono运行时,以便应用始终将 mono.runtime 与应用包附加在一起,而您不必担心设备是否安装了mono.runtime
要在visual studio或xamarin studio中执行此操作,请进行以下选择
选项 - >一般 - > Android Build - >在配置中选择发布 - >取消选中使用共享单声道运行时
答案 1 :(得分:2)
无法获取提供者mono.MonoRuntimeProvider
无法找到应用程序Mono.Android.Platform.ApiLevel_24
您正在分发不包含Mono运行时的APK。
通常调试版本被指定使用"共享单声道运行时"因为Visual Studio IDE在调试时单独安装运行时,其中一个好处是较小的APK大小,以便更快地调试部署周期。
创建发布版本时(通常通过存档/部署过程),"共享Mono Runtime"选项已关闭,因此APK生成的内容完全是自包含的。
注意:在调试会话期间从VS IDE部署时,使用共享运行时会自动安装以下APK包: