我如何发布我的cordova-crosswalk app的x86和ARM apks?

Żab*_*jad 10 android app-store cordova crosswalk-runtime

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

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

通过过滤每个apk文件所针对的设备,似乎可以在Play商店上传多个apk文件用于相同版本的应用程序.

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

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

Hen*_*ila 22

这是绝对可能的. 此功能获得了以下名称: 多个APK

您不需要使用'Application.mk'

过程很简单:

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

使用多个APK有一些规则,但如果您使用cordova crosswalk生成的文件,则无需担心.

您使用版本代码描述的问题,因为每个应用程序必须具有不同的版本代码.在我的情况下,我使用离子框架(扩展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">
Run Code Online (Sandbox Code Playgroud)

在我的情况下,arm7 apk,

机器人:的versionCode = "102"

并在x86 apk中

机器人:的versionCode = "104"

参考文献:

Android Multiple APK DOC

维护多个APK DOC


Qui*_*Fix 0

cordova -crosswalk 文档指导如何制作适用于 arm 和 x86 的 apk。问题是它会生成一个巨大的apk。

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

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

APP_ABI := armeabi armeabi-v7a
Run Code Online (Sandbox Code Playgroud)

对于英特尔 x86 :

APP_ABI := x86
Run Code Online (Sandbox Code Playgroud)

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

请注意,如果您再次运行 cordova build android,它可能会替换platforms/android 的所有内容,并且您的更改将丢失。

构建项目使用

platforms\android\cordova\build.bat -release 
Run Code Online (Sandbox Code Playgroud)

代替

cordova build android --release
Run Code Online (Sandbox Code Playgroud)