无法找到应用程序Mono.Android.Platform.ApiLevel_24或Xamarin.Android.Platform

问题描述 投票:2回答:5

我在应用程序启动时在三星Galaxy手机上的Xamarin.Forms Android应用程序(所有最新的SDK)中得到了这个例外。

2-15 01:49:56.431 29826 29826 D AndroidRuntime:关闭VM 02-15 01:49:56.431 29826 29826 E AndroidRuntime:致命异常:主02-15 01:49:56.431 29826 29826 E AndroidRuntime:进程:com。 rolsped.stage.TruckerApp,PID:29826 02-15 01:49:56.431 29826 29826 E AndroidRuntime:java.lang.RuntimeException:无法获取提供者mono.MonoRuntimeProvider:java.lang.RuntimeException:无法找到应用程序Mono.Android。 Platform.ApiLevel_24或Xamarin.Android.Platform! 02-15 01:49:56.431 29826 29826 E AndroidRuntime:在android.app.ActivityThread.installProvider(ActivityThread.java:6770)02-15 01:49:56.431 29826 29826 E AndroidRuntime:at android.app.ActivityThread.installContentProviders( ActivityThread.java:6362)02-15 01:49:56.431 29826 29826 E AndroidRuntime:at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6302)02-15 01:49:56.431 29826 29826 E AndroidRuntime:at android。 app.ActivityThread.access $ 1800(ActivityThread.java:222)02-15 01:49:56.431 29826 29826 E AndroidRuntime:at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1861)02-15 01:49: 56.431 29826 29826 E AndroidRuntime:at android.os.Handler.dispatchMessage(Handler.java:102)02-15 01:49:56.431 29826 29826 E AndroidRuntime:at android.os.Looper.loop(Looper.java:158)02 -15 01:49:56.431 29826 29826 E AndroidRuntime:在android.app.ActivityThread.main(ActivityThread.java:7229)02-15 01:49:56.431 29826 29826 E AndroidRuntime:at java.lang.reflect.Method.in voke(Native方法)02-15 01:49:56.431 29826 29826 E AndroidRuntime:at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1230)02-15 01:49:56.431 29826 29826 E AndroidRuntime:at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)02-15 01:49:56.431 29826 29826 E AndroidRuntime:引起:java.lang.RuntimeException:无法找到应用程序Mono.Android .Platform.ApiLevel_24或Xamarin.Android.Platform! 02-15 01:49:56.431 29826 29826 E AndroidRuntime:at mono.MonoRuntimeProvider.attachInfo(MonoRuntimeProvider.java:38)02-15 01:49:56.431 29826 29826 E AndroidRuntime:at android.app.ActivityThread.installProvider(ActivityThread。 java:6767)02-15 01:49:56.431 29826 29826 E AndroidRuntime:... 10更多02-15 01:49:56.431 29826 29826 E AndroidRuntime:引起:android.content.pm.PackageManager $ NameNotFoundException:Xamarin。 Android.Platform 02-15 01:49:56.431 29826 29826 E AndroidRuntime:在android.app.ApplicationPackageManager.getApplicationInfo(ApplicationPackageManager.java:368)02-15 01:49:56.431 29826 29826 E AndroidRuntime:at mono.MonoRuntimeProvider.attachInfo (MonoRuntimeProvider.java:32)02-15 01:49:56.431 29826 29826 E AndroidRuntime:... 11更多

我只在那种类型的手机上得到它。直到现在我发现的并没有解决这个问题,包括将AndroidUseLatestPlatformSdk设置为false,我发现了here

希望有人可以帮助我。

谢谢

埃里克

xamarin.android xamarin.forms
5个回答
11
投票

从Project - > Options-> Android Options中禁用Use Shared Runtime解决了它。


0
投票

检查这个link,这可能会对你有所帮助。看起来他们以前遇到过同样的问题。希望能帮助到你!


0
投票

是的,如上面的答案所述:

Disabling Use Shared Runtime from Project -> Options -> Android Options 

应该在大多数情况下工作,这确实是第一个尝试。但如果这不起作用,您也可以尝试从Android项目属性 - >高级添加到支持的体系结构列表,如下图所示。

enter image description here

enter image description here

希望这可以帮助。


0
投票

提到的Use Shared Runtime选项禁用绝对是允许应用程序部署的解决方案。虽然该选项应该允许在开发期间更快地部署。

应该有一种方法可以使用共享运行时并成功运行应用程序。

就我而言,我在带有API 19的设备上使用minSdk=16部署了一个新的应用程序。 所以我在/data/app/文件夹中找到了“Mono.Android.Platform.ApiLevel_19-1.apk”。

编译器Android平台是API 28。 但例外情况说:

无法找到应用程序Mono.Android.Platform.ApiLevel_25或Xamarin.Android.Platform

所以这是一个完整的混乱。 也许在具有API 25的设备上它可以工作。


编辑:

最后,什么对我有用。 从Android SDK下载“platform-25_r03.zip”,将其解压缩到“platforms”文件夹,重命名为“android-25”。然后创建了新项目Run。

(哦,以前删除过的Mono应用程序):

adb uninstall Mono.Android.DebugRuntime
adb uninstall Mono.Android.Platform.ApiLevel_19

它安装了“Mono.Android.Platform.ApiLevel_25.apk”。

这种情况的开发参数:

  • Xamarin Studio 6.3
  • XA Marin.Android 7.3.1.2
  • JDK 8

在Xamarin工作室 - >帮助 - >关于它说:

支持的Android版本: 4.1(API级别16) 4.4(API级别19) 7.1(API级别25)

添加API 25平台文件夹后。


0
投票

我从Azure DevOps的构建中遇到了这个问题,但是没有在本地,它没有发现我在项目中设置它的事实。

我不得不在Android构建步骤中手动设置EmbedAssembliesIntoApkAndroidUseSharedRuntime,这是yaml:

  - task: XamarinAndroid@1
    displayName: 'Build Android App'
    inputs:
      projectFile: '$(AndroidProject)'
      configuration: '$(BuildConfiguration)'
      outputDirectory: '$(OutputDirectory)'
      msbuildArchitectureOption: x64
      msbuildArguments: '/verbosity:detailed /p:TreatWarningsAsErrors="true" /p:EmbedAssembliesIntoApk="true" /p:AndroidUseSharedRuntime="false"'
© www.soinside.com 2019 - 2024. All rights reserved.