我是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文件中。
即使是来自互联网的其他示例项目也会产生完全相同的结果。
我做错了什么?
答案 0 :(得分:0)
通过全新安装Android SDK和所有相关组件解决了这个问题。它似乎与旧的Google Android SDK和新安装的Xamarin Android SDK之间存在SDK不匹配。
答案 1 :(得分:0)
我遇到了同样的问题,并尝试了Web搜索中的许多解决方案,但这在一定程度上解决了部署失败的问题。
这解决了说base.apk丢失的问题。
答案 2 :(得分:0)
尝试将您的项目设置回当前建议的默认值。从.csproj文件中删除以下所有属性:
这将使Xamarin.Android选择当前的最新默认值,这适用于Mac和VS 2017-2019的Visual Studio