APK无法安装在任何设备上

时间:2017-12-26 19:44:35

标签: xamarin.android

我是Xamarin开发世界的新手,所以我安装了Visual Studio 2017以及所有需要的交叉编译器功能。 下载并更新Android API 23,24,25和26的SDK以及一些相应的仿真器图像后,我启动了仿真器。 我在VS中创建了一个基础Xamarin Android应用程序,并将其编译并部署到模拟器中。

通过将生成的APK部署/安装到模拟器,我收到以下错误:

Failure [INSTALL_FAILED_INVALID_APK: Package couldn't be installed in /data/app/BlankAndroid.BlankAndroid-1: Package /data/app/BlankAndroid.BlankAndroid-1/base.apk code is missing]

我选择哪种SDK作为“目标框架”或我选择哪种模拟器(Android 6,Android 7或7.1)并不重要。结果是相同的:没有安装apk,但“Mono Shared Runtime”存在并将更新。

我发现创建的apk文件不包含文件“classes.dex”或任何oder dex文件只是一些资源。目录“obj \ Debug \ android \ bin \ classes”中的文件“classes.zip”与我的C#中生成的java类一起出现。当我理解正确时,应该使用DEX-Compiler将这些文件编译到classes.dex文件中。

即使是来自互联网的其他示例项目也会产生完全相同的结果。

我做错了什么?

3 个答案:

答案 0 :(得分:0)

通过全新安装Android SDK和所有相关组件解决了这个问题。它似乎与旧的Google Android SDK和新安装的Xamarin Android SDK之间存在SDK不匹配。

答案 1 :(得分:0)

我遇到了同样的问题,并尝试了Web搜索中的许多解决方案,但这在一定程度上解决了部署失败的问题。

  1. 在模拟器中,打开设置->应用程序->如果列出了应用程序,则将其卸载
  2. 再次从Visual Studio部署应用。

这解决了说base.apk丢失的问题。

答案 2 :(得分:0)

尝试将您的项目设置回当前建议的默认值。从.csproj文件中删除以下所有属性:

  • AndroidEnableMultiDex
  • AndroidDexGenerator
  • AndroidLinkTool
  • AndroidDexTool

这将使Xamarin.Android选择当前的最新默认值,这适用于Mac和VS 2017-2019的Visual Studio