10

我的应用程序是使用 Cordova 和 Crosswalk 开发/发布的。Crosswalk 为 ARM cpus 生成一个 apk,为 x86 cpus 生成另一个 apk。

目前,当我将我的 ARM apk 上传到 Play 商店然后尝试上传 x86 的时候,它阻止了我这样做并显示一条消息,说我不能拥有两个具有相同版本代码的 apk。

通过过滤每个 apk 文件所针对的设备,似乎可以在 Play Store 上为同一版本的应用程序上传多个 apk 文件。

但是,它似乎需要使用默认情况下 Cordova 项目结构似乎没有的“Application.mk”文件。

如何在我的 apk 中包含 Application.mk 文件,以便具有相同版本代码的 ARM 和 x86 都可以上传到 Play 商店?

4

4 回答 4

23

这是绝对可能的。 此功能的名称为: Multiple APK

您不需要使用“Application.mk”

过程很简单

  1. 在开发者控制台中,切换到高级模式(单击 APK 选项卡右上角的切换到高级模式按钮 - 请注意,您必须至少上传一个 APK 才能显示该按钮)
  2. 上传两个APK
  3. 发布!

使用多个 APK 有一些规则,但如果您使用 Cordova 人行横道生成的文件,则无需担心。

您使用版本代码描述的问题是因为每个应用程序必须具有不同的版本代码。就我而言,我使用离子框架(扩展了cordova)并且在构建过程中,它为每个apk生成了不同的版本代码,所以我没有问题。如果您没有发生这种情况,您可以尝试直接在 AndroidManifest.xml 文件上更改 de android:versionCode 。这是我的清单的样子:

<manifest 
  android:hardwareAccelerated="true" 
  android:versionCode="102" 
  android:versionName="0.1.2" 
  package="br.org.yyyyyyy.xxxxxxxxxx"   
  xmlns:android="http://schemas.android.com/apk/res/android">

就我而言,arm7 apk,

安卓:版本代码="102"

在 x86 apk 中

安卓:版本代码=“104”

参考:

Android 多个 APK 文档

维护多个 APKs DOC

于 2015-04-15T17:32:28.193 回答
1

我正在做简单的方法。例如,您的主要 v 代码是 102,因此您使用 102 v 代码构建第一个 arm,然后上传。在上传运行之前,您可以将清单和构建等级中的 v 代码更改为 103 并构建另一个 x86。简单易行。

于 2016-10-07T16:52:44.003 回答
1

我认为过去一年情况发生了变化。我使用相同的版本代码并上传了两个 apk(一次一个 - 以正常方式)。Google Play 自动检测到它们针对不同的原生平台,并允许两者都投入生产。

于 2016-11-14T14:53:25.930 回答
0

cordova-crosswalk 文档说明了如何制作适用于 arm 和 x86 的 apk 。问题是它产生了一个巨大的apk。

如果你真的想做两个apk,你可以尝试(抱歉还没有测试)在文件夹platforms/android/jni中创建Application.mk文件

对于 arm,您可以将此行放在 Application.mk 中:

APP_ABI := armeabi armeabi-v7a

对于英特尔 x86 :

APP_ABI := x86

并且您必须更改 AndroidManifest.xml 以针对每个平台使用不同的版本(按照您提供的链接中的说明进行操作)。

注意,如果你再次运行cordova build android,它可能会替换所有platforms/android 的内容,你的修改会丢失。

构建项目使用

platforms\android\cordova\build.bat -release 

代替

cordova build android --release
于 2015-02-25T16:19:25.013 回答