Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OutOfMemory for RAPT on upgrade to 7.3 #1891

Closed
trajano opened this issue Jun 19, 2019 · 4 comments
Closed

OutOfMemory for RAPT on upgrade to 7.3 #1891

trajano opened this issue Jun 19, 2019 · 4 comments

Comments

@trajano
Copy link

trajano commented Jun 19, 2019

I was able to fix this by just changing the gradle.settings file so instead of 3g, I use 4g. But it would be nice if there was a setting to set that up from the UI.

@Andykl
Copy link
Member

Andykl commented Jun 19, 2019

Same problem with 500Mb+ projects

Ren'Py 7.3.0.271

Starting a Gradle Daemon (subsequent builds will be faster)
:app:preBuild UP-TO-DATE
:renpyandroid:preBuild UP-TO-DATE
:renpyandroid:preDebugBuild UP-TO-DATE
:renpyandroid:checkDebugManifest
:renpyandroid:processDebugManifest
:app:preDebugBuild
:renpyandroid:compileDebugAidl
:app:compileDebugAidl
:renpyandroid:packageDebugRenderscript NO-SOURCE
:app:compileDebugRenderscript
:app:checkDebugManifest
:app:generateDebugBuildConfig
:app:prepareLintJar UP-TO-DATE
:app:mainApkListPersistenceDebug
:app:generateDebugResValues
:app:generateDebugResources
:renpyandroid:compileDebugRenderscript
:renpyandroid:generateDebugResValues
:renpyandroid:generateDebugResources
:renpyandroid:packageDebugResources
:app:mergeDebugResources
:app:createDebugCompatibleScreenManifests
:app:processDebugManifest
:app:splitsDiscoveryTaskDebug
:renpyandroid:platformAttrExtractor UP-TO-DATE
:renpyandroid:generateDebugRFile
:app:processDebugResources
:app:generateDebugSources
:renpyandroid:generateDebugBuildConfig
:renpyandroid:prepareLintJar UP-TO-DATE
:renpyandroid:generateDebugSources
:renpyandroid:javaPreCompileDebug
:renpyandroid:compileDebugJavaWithJavacNote: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

:renpyandroid:processDebugJavaRes NO-SOURCE
:renpyandroid:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug
:app:javaPreCompileDebug
:app:compileDebugJavaWithJavac
:app:compileDebugNdk NO-SOURCE
:app:compileDebugSources
:app:mergeDebugShaders
:app:compileDebugShaders
:app:generateDebugAssets
:renpyandroid:mergeDebugShaders
:renpyandroid:compileDebugShaders
:renpyandroid:generateDebugAssets
:renpyandroid:packageDebugAssets
:app:mergeDebugAssets
:app:transformClassesWithDexBuilderForDebug
:app:transformDexArchiveWithExternalLibsDexMergerForDebug
:app:transformDexArchiveWithDexMergerForDebug
:app:mergeDebugJniLibFolders
:renpyandroid:compileDebugNdk NO-SOURCE
:renpyandroid:mergeDebugJniLibFolders
:renpyandroid:transformNativeLibsWithMergeJniLibsForDebug
:renpyandroid:transformNativeLibsWithIntermediateJniLibsForDebug
:app:transformNativeLibsWithMergeJniLibsForDebug
:app:processDebugJavaRes NO-SOURCE
:app:transformResourcesWithMergeJavaResForDebug
:app:validateSigningDebug
:app:packageDebug
Expiring Daemon because JVM Tenured space is exhausted
Daemon will be stopped at the end of the build after running out of JVM memory
:app:packageDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:packageDebug'.
> org.gradle.tooling.BuildException (no error message)

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:packageDebug'.
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
	at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
	at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
	at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
	at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.tooling.BuildException
	at com.android.build.gradle.internal.scope.BuildElements$ExecutorBasedScheduler$transform$2.invoke(BuildElements.kt:133)
	at com.android.build.gradle.internal.scope.BuildElements$ExecutorBasedScheduler$transform$2.invoke(BuildElements.kt:110)
	at kotlin.sequences.SequencesKt___SequencesKt$onEach$1.invoke(_Sequences.kt:1260)
	at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:148)
	at kotlin.sequences.FilteringSequence$iterator$1.calcNext(Sequences.kt:108)
	at kotlin.sequences.FilteringSequence$iterator$1.hasNext(Sequences.kt:132)
	at kotlin.sequences.TransformingSequence$iterator$1.hasNext(Sequences.kt:152)
	at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:633)
	at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:663)
	at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:654)
	at com.android.build.gradle.internal.scope.BuildElements$ExecutorBasedScheduler.transform(BuildElements.kt:140)
	at com.android.build.gradle.internal.scope.BuildElements$ExecutorBasedScheduler.into(BuildElements.kt:115)
	at com.android.build.gradle.internal.scope.BuildElementActionScheduler.into(BuildElementActionScheduler.kt:32)
	at com.android.build.gradle.tasks.PackageAndroidArtifact.doFullTaskAction(PackageAndroidArtifact.java:393)
	at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:106)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
	at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
	... 29 more
Caused by: java.lang.OutOfMemoryError
	at com.android.ide.common.internal.WaitableExecutor.waitForAllTasks(WaitableExecutor.java:215)
	at com.android.build.gradle.internal.scope.BuildElements$ExecutorBasedScheduler.transform(BuildElements.kt:125)
	... 44 more
Caused by: java.lang.OutOfMemoryError: Java heap space
	at com.google.common.io.ByteStreams.toByteArray(ByteStreams.java:167)
	at com.android.apkzlib.zip.StoredEntry.read(StoredEntry.java:346)
	at com.android.apkzlib.sign.SigningExtension.onZipEntryOutput(SigningExtension.java:256)
	at com.android.apkzlib.sign.SigningExtension.access$400(SigningExtension.java:55)
	at com.android.apkzlib.sign.SigningExtension$1.lambda$added$0(SigningExtension.java:164)
	at com.android.apkzlib.sign.SigningExtension$1$$Lambda$1036/1940252060.run(Unknown Source)
	at com.android.apkzlib.zip.ZFile.notify(ZFile.java:2250)
	at com.android.apkzlib.zip.ZFile.addToEntries(ZFile.java:1884)
	at com.android.apkzlib.zip.ZFile.processAllReadyEntries(ZFile.java:1825)
	at com.android.apkzlib.zip.ZFile.add(ZFile.java:1782)
	at com.android.apkzlib.zip.ZFile.add(ZFile.java:1763)
	at com.android.apkzlib.zfile.ApkZFileCreator.writeFile(ApkZFileCreator.java:158)
	at com.android.builder.internal.packaging.IncrementalPackager.updateFiles(IncrementalPackager.java:176)
	at com.android.builder.internal.packaging.IncrementalPackager.updateAssets(IncrementalPackager.java:238)
	at com.android.build.gradle.tasks.PackageAndroidArtifact.doTask(PackageAndroidArtifact.java:666)
	at com.android.build.gradle.tasks.PackageAndroidArtifact.splitFullAction(PackageAndroidArtifact.java:496)
	at com.android.build.gradle.tasks.PackageAndroidArtifact.lambda$doFullTaskAction$2(PackageAndroidArtifact.java:388)
	at com.android.build.gradle.tasks.PackageAndroidArtifact$$Lambda$979/166179899.invoke(Unknown Source)
	at com.android.build.gradle.internal.scope.BuildElements$ExecutorBasedScheduler$transform$$inlined$forEach$lambda$1.call(BuildElements.kt:121)
	at com.android.build.gradle.internal.scope.BuildElements$ExecutorBasedScheduler$transform$$inlined$forEach$lambda$1.call(BuildElements.kt:110)


* Get more help at https://help.gradle.org

BUILD FAILED in 2m 9s
45 actionable tasks: 42 executed, 3 up-to-date
Expiring Daemon because JVM Tenured space is exhausted

@trajano
Copy link
Author

trajano commented Jun 19, 2019

in renpy\rapt\project\gradle.properties
I changed mine to
org.gradle.jvmargs=-Xmx4g

Make sure you're using the 64-bit version of the JDK otherwise it will also fail.

@kunaldas1997
Copy link

Same here. The method by @trajano didn't help either

@korden32
Copy link
Contributor

This happens because rapt now produce arm64 and universal build which consumes a lot more RAM.
There are two ways:

  • make sure you are using x64 JDK, and raise xmx up to 5-8 gigabytes:
    org.gradle.jvmargs=-Xmx8g in renpy\rapt\project\gradle.properties

  • If you don't publish your game in GPlay, then you probably not need per-platform APKs (per-platform libs are somewhat ~20mb, which is nothing compared to assets size).
    comment out include "x86_64", "armeabi-v7a", "arm64-v8a" in rapt\templates\app-build.gradle so it will look like this:

// include "x86_64", "armeabi-v7a", "arm64-v8a"
universalApk true

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants