在离散项目的Crosswalk集成之后构建组合armv7 / x86 apk

时间:2015-09-12 05:37:13

标签: cordova ionic-framework crosswalk-runtime

我已将Crosswalk添加到我的离子项目中。当我执行ionic build android时,它会输出两个单独的APK文件,一个用于armv7,另一个用于x86。

但是,我想要一个单独的apk文件将两个体系结构捆绑在一起。

我尝试设置BUILD_MULTIPLE_APKS = false,但它仍在构建两个单独的apks。

有一篇帖子here说:

  

我花了一分钟但你可以通过评论获得单个构建文件   输出中的cdvBuildMultipleApks = true行   平台/机器人/ gradle.properties

     

干杯

但是我的平台/ android /文件夹中没有任何gradle.properties文件,我有一个project.properties文件,其中没有cdvBuildMultipleApks=true行可以注释掉。

我尝试手动创建一个gradle.properties文件并将cdvBuildMultipleApks=false放在那里但仍有两个输出。

任何想法如何实现这一目标?

更新:

我的Cordova版本是5.1.1

解决方案:

根据@mudasserajaz和here的建议,对我有用的是:

  1. 在我的build-extras.gradle目录中创建名为/platform/android/的文件。
  2. ext.cdvBuildMultipleApks=false放入其中。
  3. ionic build android --release然后和Voila一起工作。
  4. @mudasserajaz建议同样的事情,除了变量名称是cdvBuildMultipleApks=false所以如果它没有为你工作,请不要忘记ext

4 个答案:

答案 0 :(得分:44)

我刚刚将 config.xml 以下属性更改为false,并将其与构建apk结合起来。

<preference name="xwalkMultipleApk" value="true"/>

<preference name="xwalkMultipleApk" value="false"/>

我的系统ionic info返回

Your system information:

Cordova CLI: 6.1.1
Gulp version:  CLI version 3.9.1
Gulp local:   Local version 3.9.1
Ionic CLI Version: 1.7.16
Ionic App Lib Version: 0.7.3
OS:
Node Version: v4.4.4

答案 1 :(得分:41)

以下是执行此操作的步骤:

  1. 制作文件build-extras.gradle并将其放入platforms/android/。将行cdvBuildMultipleApks=false添加到build-extras.gradle
  2. 现在运行ionic run android,它将创建组合的单个构建android-debug.apk
  3. build.gradle将自动导入build-extras.gradle,如果已定义。您可以看到build.gradle的代码执行此操作:

    def hasBuildExtras = file('build-extras.gradle').exists()
    if (hasBuildExtras) {
        apply from: 'build-extras.gradle'
    }
    

    此外,build.gradle第57行明确提到了这些说明:

      

    配置属性。通过环境变量设置这些,   build-extras.gradle或gradle.properties。

    注意:在执行这些步骤之前,请删除平台文件夹并重新安装。

    观察:完成这些步骤后,您需要进行单独的构建,然后设置cdvBuildMultipleApks=true或注释掉有时不会工作,你只需要再次安装平台。 (P.S这是我个人观察,否则删除build-extras.gradle就足够了。)

答案 2 :(得分:3)

截至今天,在2018年,我们可能会忽略x86移动平台,因为几乎没有任何移动设备使用英特尔CPU。

这具有较小的APK的优势。单平台APK比多平台APK小。

答案 3 :(得分:0)

确保检查输出文件夹。

我注意到&#34; cordova build&#34;在添加到我的build-extra.gradle之后仍然输出arm7和x86但输出文件夹包含&#34; android-release.apk&#34;同样。

从输出文件夹中删除arm7和x86 APK(项目/ platforms / android / build / outputs / apk /)

它立即阻止他们被#cor; corodva build&#34;。

显示出来

希望这有帮助。