我在 Visual Studio 中存档并部署了我的 apk 到 Google Play 商店,但它不允许我继续 Beta 推出,并且 Beta 推出页面上的唯一消息是以下警告:
单击错误后,出现下一条消息:
消息中提供的链接仅适用于 Android Studio,不适用于 Visual Studio,因此我不知道如何解决此问题。
请注意以下屏幕,因为您可能正在寻找复选框,但您不会看到它们,至少在单击最后一个下拉菜单之前不会看到它们。
armeabi-v7a
和 arm64-v8a
为了修复该错误,我卸载了 Android 项目并编辑了 csproj 文件。
我改变了我的发布配置:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugSymbols>false</DebugSymbols>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AndroidManagedSymbols>true</AndroidManagedSymbols>
<AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
<EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
</PropertyGroup>
对此:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugSymbols>false</DebugSymbols>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AndroidManagedSymbols>true</AndroidManagedSymbols>
<AndroidSupportedAbis Condition=" '$(AndroidSupportedAbis)' == '' ">armeabi-v7a;arm64-v8a</AndroidSupportedAbis>
<AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
<EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
<AndroidCreatePackagePerAbi>false</AndroidCreatePackagePerAbi>
</PropertyGroup>
然后重建并重新上传后,我不再收到错误,但我也意识到我仍然无法完成 Beta 部署。 后来发现这是因为我在页面左侧还有其他项目(灰色复选标记)尚未完成。
所以最后,也许我可以忽略这个警告,但至少我解决了这个问题。
* 重复我的答案 *
我也遇到了同样的问题,确实是上传时选择了错误的“支持的架构”。
第1步
所以现在我的架构是这样选择的
但在我也检查了“x86”之前。检查它并没有错,但我了解到在这种情况下您还需要检查“x86_64”。就像您需要“arm64-v8a”一样,如果您有“armeabi-v7a”
无论如何,我解决了这个问题,重建了解决方案(使用 Visual Studio 2019 社区中的 Xamarin Forms),将其存档并上传到 Google Play Console。 没成功!
第2步
我想我需要更改“版本名称”(从 1.0.0.0 到 1.0.0.1)才能使其正常工作,但无济于事。
我迷失了半天,直到找到这个
— 用作内部版本号的正整数。此数字仅用于确定一个版本是否比另一个版本更新,数字越大表示版本更新。这不是向用户显示的版本号;该数字由下面的 versionName 设置设置。 Android 系统使用 versionCode 值来防止降级,防止用户安装版本代码低于其设备上当前安装版本的 APK。versionCode
因此,我将“版本名称”改回 1.0.0.0,并将“版本号”(“版本代码”的 VS19C/XamarinForms 别名)提高到 2,重新构建、存档并上传到 Google Play 控制台,我就快到了,但还没有还在那里。
第三步
只有在我单击具有 3 个支持的架构的 APK 旁边的“删除”后,部署才成功,只剩下最后上传的 APK,该 APK 只有 2 个受支持的架构。
现在我们正在“全面推出”
这也是因为Xamarin.Android 9.1这是支持armeabi架构的最后一个版本。
就我而言,
armeabi-v7a
和arm64-v8a
已经检查过,但我仍然遇到同样的问题。
所以我按照这里的指南进行操作: https://github.com/xamarin/xamarin-android/blob/master/Documentation/guides/messages/xa0115.md
它对我有用!
对于使用 gradle 的开发环境(Android Studio 是我的经验),删除对 32 位支持的解决方法是替换:
defaultConfig {
......
abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
与
defaultConfig {
......
ndk.abiFilters 'armeabi-v7a', 'arm64-v8a'
}
在 build.gradle 文件中