Xamarin - 此版本不符合 Google Play 64 位要求

问题描述 投票:0回答:4

我在 Visual Studio 中存档并部署了我的 apk 到 Google Play 商店,但它不允许我继续 Beta 推出,并且 Beta 推出页面上的唯一消息是以下警告:

enter image description here

单击错误后,出现下一条消息:

enter image description here

消息中提供的链接仅适用于 Android Studio,不适用于 Visual Studio,因此我不知道如何解决此问题。

visual-studio xamarin.forms xamarin.android google-play
4个回答
24
投票

最简单的修复:

请注意以下屏幕,因为您可能正在寻找复选框,但您不会看到它们,至少在单击最后一个下拉菜单之前不会看到它们。

  1. 确保您已将解决方案更改为“发布”
  2. 右键单击 Android 项目
  3. 点击“属性”
  4. 选择左侧的“Android 选项”
  5. 在页面底部点击“高级”
  6. 单击“支持的架构”下的下拉菜单
  7. 检查
    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 部署。 后来发现这是因为我在页面左侧还有其他项目(灰色复选标记)尚未完成。

所以最后,也许我可以忽略这个警告,但至少我解决了这个问题。


2
投票

* 重复我的答案 *

我也遇到了同样的问题,确实是上传时选择了错误的“支持的架构”。

第1步

所以现在我的架构是这样选择的 Supported architectures - Visual Studio 2019 Community / Xamarin Forms

但在我也检查了“x86”之前。检查它并没有错,但我了解到在这种情况下您还需要检查“x86_64”。就像您需要“arm64-v8a”一样,如果您有“armeabi-v7a”

无论如何,我解决了这个问题,重建了解决方案(使用 Visual Studio 2019 社区中的 Xamarin Forms),将其存档并上传到 Google Play Console。 没成功!

第2步

我想我需要更改“版本名称”(从 1.0.0.0 到 1.0.0.1)才能使其正常工作,但无济于事。

我迷失了半天,直到找到这个

versionCode
— 用作内部版本号的正整数。此数字仅用于确定一个版本是否比另一个版本更新,数字越大表示版本更新。这不是向用户显示的版本号;该数字由下面的 versionName 设置设置。 Android 系统使用 versionCode 值来防止降级,防止用户安装版本代码低于其设备上当前安装版本的 APK。

Android 开发者网站

因此,我将“版本名称”改回 1.0.0.0,并将“版本号”(“版本代码”的 VS19C/XamarinForms 别名)提高到 2,重新构建、存档并上传到 Google Play 控制台,我就快到了,但还没有还在那里。

第三步

只有在我单击具有 3 个支持的架构的 APK 旁边的“删除”后,部署才成功,只剩下最后上传的 APK,该 APK 只有 2 个受支持的架构。

现在我们正在“全面推出”


1
投票

这也是因为Xamarin.Android 9.1这是支持armeabi架构的最后一个版本。

就我而言,

armeabi-v7a
arm64-v8a
已经检查过,但我仍然遇到同样的问题。


所以我按照这里的指南进行操作: https://github.com/xamarin/xamarin-android/blob/master/Documentation/guides/messages/xa0115.md

它对我有用!


0
投票

对于使用 gradle 的开发环境(Android Studio 是我的经验),删除对 32 位支持的解决方法是替换:

defaultConfig {
    ......
    abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
} 

defaultConfig {
    ......
    ndk.abiFilters 'armeabi-v7a', 'arm64-v8a'
}

在 build.gradle 文件中

© www.soinside.com 2019 - 2024. All rights reserved.