构建原生安卓包因内存暴涨而失败的解决办法?

编辑器版本:Creator 2.4.3

问题描述:

我们的安卓包大小大概是650M,在构建面板里点击构建能够生成安卓工程。但是点编译后,编译很长时间后,结果会失败。构建日志显示的失败原因是:

> Task :instantapp:packageReleaseInstantAppBundle FAILED
:instantapp:packageReleaseInstantAppBundle (Thread[Task worker for ':' Thread 5,5,main]) completed. Took 2.529 secs.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':instantapp:packageReleaseInstantAppBundle'.
> Java heap space

里面看到的信息一个貌似是生成instantapp失败,但是我只是编译安卓的APK包,并没有想生成instanapp,为什么会这样呢?
第二个是Java heap space好像是Java编译过程中内存太大导致失败,请问是这样吗?

最后我到构建目录里看了一下,里面有app, game, instantapp三个目录,不是很明白这三个目录分别代表什么?希望官方能指导一下;其中app和game其实已经生成了apk。

我的问题是:我只想生成普通的APK包,怎么才能让构建成功呢?

下面是一些载图:

经过自己的模索终于解决了,默认编译会一起编译instant app,然后编译这个东西不知道是有什么毛病,内存需求非常大。这样改就可以了

frameworks\runtime-src\proj.android-studio\,打开settings.gradle文件,修改前面:

// include ':libcocos2dx',':game', ':instantapp'
include ':libcocos2dx'

这样就去掉了game和instantapp两个模块。

再次点编译成功,共享给遇到同样问题的人。

题外话:引擎同学都跑去搞3D了么?论坛里的没人问津的。。。。

3赞

是的编辑器默认会编译这两个平台,如果你不希望两个平台都编译,可以自己执行 gradlew app:assembleDebug/Release 来只编译 app。
或者,在 gradle.properties 文件中加上jvm的配置来增加 heap size 最大值 org.gradle.jvmargs=-XX:MaxHeapSize=2048m -Xmx2048m 这样就不会超出了,2048的值可以自己定义。

可以稍微详细一点吗,比如只编译app的命令需要在哪个目录下执行,如果我是用creator的命令行来生成apk,应该怎么做?

目前creator 的命令行,会自动生成2个平台的apk,所以如果要只生成 app 的apk,那么需要用creator构建完成后,在 proj.android-studio 目录下执行 gradlew app:assembleDebug 来打包 debug 版本或者 gradlew app:assembleRelease 来打包 release 版本 打包完的 apk 会在 proj.android-studio/app/build/output/apk/ 目录下

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。