【发布时间】:2020-05-14 12:05:31
【问题描述】:
说明
我有一个项目在我的诺基亚 Android 设备上运行良好。为了更新它的覆盖范围,我将我的设备更新到了 android 10。我去了 SDK 管理器并获得了 android v29。
在我的 AMD PC 上,仅使用真实设备进行调试。
我将目标框架更改为 v29,Android 10-Q。
我遇到了部署问题
复制步骤
- 创建一个 Xamarin。面向 Android 9 的表单项目。
- 更新框架和 Nugget 包以更新
- 运行
预期行为
构建和部署成功
实际行为
给出错误
Severity Code Description Project File Line Suppression State
Error ADB0010: Deployment failed
Mono.AndroidTools.InstallFailedException: Unexpected install output: Error: Failed to parse APK file: /data/local/tmp/Mono.Android.Platform.ApiLevel_29.apk
Exception occurred while executing:
java.lang.IllegalArgumentException: Error: Failed to parse APK file: /data/local/tmp/Mono.Android.Platform.ApiLevel_29.apk
at com.android.server.pm.PackageManagerShellCommand.setParamsSize(PackageManagerShellCommand.java:486)
at com.android.server.pm.PackageManagerShellCommand.runInstall(PackageManagerShellCommand.java:1075)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:169)
at android.os.ShellCommand.exec(ShellCommand.java:104)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:22021)
at android.os.Binder.shellCommand(Binder.java:881)
at android.os.Binder.onTransact(Binder.java:765)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4876)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:4128)
at android.os.Binder.execTransactInternal(Binder.java:1021)
at android.os.Binder.execTransact(Binder.java:994)
Caused by: android.content.pm.PackageParser$PackageParserException: Failed to parse /data/local/tmp/Mono.Android.Platform.ApiLevel_29.apk
at android.content.pm.PackageParser.parseApkLiteInner(PackageParser.java:1597)
at android.content.pm.PackageParser.parseApkLite(PackageParser.java:1582)
at com.android.server.pm.PackageManagerShellCommand.setParamsSize(PackageManagerShellCommand.java:479)
... 10 more
at Mono.AndroidTools.Internal.AdbOutputParsing.CheckInstallSuccess(String output, String packageName) in E:\A\_work\548\s\External\androidtools\Mono.AndroidTools\Internal\AdbOutputParsing.cs:line 345
at Mono.AndroidTools.AndroidDevice.<>c__DisplayClass95_0.<InstallPackage>b__0(Task`1 t) in E:\A\_work\548\s\External\androidtools\Mono.AndroidTools\AndroidDevice.cs:line 753
at System.Threading.Tasks.ContinuationTaskFromResultTask`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at AndroidDeviceExtensions.<PushAndInstallPackage>d__11.MoveNext() in E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Devices\AndroidDeviceExtensions.cs:line 187
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at AndroidDeviceExtensions.<PushAndInstallPackage>d__11.MoveNext() in E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Devices\AndroidDeviceExtensions.cs:line 203
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at AndroidDeviceExtensions.<InstallSharedPlatformAsync>d__24.MoveNext() in E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Devices\AndroidDeviceExtensions.cs:line 478
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Xamarin.AndroidTools.AndroidDeploySession.<InstallSharedPlatformAsync>d__110.MoveNext() in E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Sessions\AndroidDeploySession.cs:line 355
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Xamarin.AndroidTools.AndroidDeploySession.<EnsureCorrectSharedRuntimes>d__107.MoveNext() in E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Sessions\AndroidDeploySession.cs:line 266
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
at Xamarin.AndroidTools.AndroidDeploySession.<RunAsync>d__106.MoveNext() in E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Sessions\AndroidDeploySession.cs:line 194
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Xamarin.AndroidTools.AndroidDeploySession.<RunLoggedAsync>d__104.MoveNext() in E:\A\_work\548\s\External\androidtools\Xamarin.AndroidTools\Sessions\AndroidDeploySession.cs:line 119 0
基本信息
- 存在问题的版本:Xamarin.forms 4.6.0.772 android 10
- 最后一个已知的好版本:Xamarin.forms 4.6.0.772 android 9
- IDE:Visual Studio 2019 v16.5.4
- 平台目标框架:Android 10 (Q)
- iOS:8.0(不是问题)
- 安卓:10.0
- UWP:Windows 10 1903 18362(不是问题)
- Android 支持库版本:
- Nuget 包:
- 受影响的设备:
截图
复制链接
解决方法
仍然卡住(15-04-2020 14:11 GMT +1)
【问题讨论】:
-
您是否将编译版本更改为 10 并更新了所有 Nuget?
-
是的,我做到了,我将它更新到了我能找到的最新版本。
-
我无法重现,但
android:targetSdkVersion="28"它必须是 29 -
好的。即使在 29 岁,仍然存在同样的问题z
-
我遇到了同样的问题 (stackoverflow.com/questions/61382744/…)。你找到解决方法了吗?
标签: xamarin xamarin.forms xamarin.android mono android-10.0