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

Sob*_*han 39 cordova ionic-framework crosswalk-runtime

我已将Crosswalk添加到我的离子项目中.当我这样做ionic build android时输出两个单独的APK文件,一个用于armv7,另一个用于x86.

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

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

有一个帖子在这里说:

花了我一分钟但你可以通过在platforms/android/gradle.properties中注释掉cdvBuildMultipleApks = true行来获得单个构建文件

干杯

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

我试图手动创建一个gradle.properties文件并放入cdvBuildMultipleApks=false那里,但仍然有两个输出.

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

更新:

我的Cordova版本是5.1.1

解:

通过@mudasserajaz的建议和什么为我所做的工作在这里,是为了:

  1. build-extras.gradle在我的/platform/android/目录中创建一个名为的文件.
  2. 放进ext.cdvBuildMultipleApks=false去吧.
  3. ionic build android --release 然后和Voila一起工作了.

@mudasserajaz建议同样的事情,除了变量名称是cdvBuildMultipleApks=false这样的,如果它没有为你工作,不要忘了ext

M. *_*aat 45

好吧,我只是改变了我的config.xml以下属性false,它结合了构建apk.

<preference name="xwalkMultipleApk" value="true"/>
Run Code Online (Sandbox Code Playgroud)

<preference name="xwalkMultipleApk" value="false"/>
Run Code Online (Sandbox Code Playgroud)

我的系统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
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说也很有用,除了xwalk的<preference />不是我原来的config.xml的一部分. (2认同)

Mud*_*jaz 41

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

  1. 制作一个文件build-extras.gradle并将其放入platforms/android/.添加行cdvBuildMultipleApks=falsebuild-extras.gradle.
  2. 现在运行ionic run android,它将创建组合的单一构建android-debug.apk.

build.gradle将自动导入build-extras.gradle,如果已定义.您可以看到代码build.gradle执行此操作的:

def hasBuildExtras = file('build-extras.gradle').exists()
if (hasBuildExtras) {
    apply from: 'build-extras.gradle'
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

观察:一旦你完成了这些步骤,并且在某些时候,你想要进行单独的构建,然后设置cdvBuildMultipleApks=true 或注释有时不起作用,你只需要再次安装平台.(PS这是我个人的观察,否则删除build-extras.gradle就足够了.)

  • 这仍然是这样做的方法吗?尝试同时使用cdvBuildMultipleApks = false和ext.cdvBuildMultipleApks = false都无法正常工作 (3认同)