diff --git a/java/base.go b/java/base.go index 6ff2d0383..8747039da 100644 --- a/java/base.go +++ b/java/base.go @@ -862,7 +862,7 @@ func (j *Module) collectBuilderFlags(ctx android.ModuleContext, deps deps) javaB } errorProneFlags = append(errorProneFlags, j.properties.Errorprone.Javacflags...) - flags.errorProneExtraJavacFlags = "${config.ErrorProneFlags} " + + flags.errorProneExtraJavacFlags = "${config.ErrorProneHeapFlags} ${config.ErrorProneFlags} " + "'" + strings.Join(errorProneFlags, " ") + "'" flags.errorProneProcessorPath = classpath(android.PathsForSource(ctx, config.ErrorProneClasspath)) } diff --git a/java/config/config.go b/java/config/config.go index ea2f93449..39584cb83 100644 --- a/java/config/config.go +++ b/java/config/config.go @@ -68,6 +68,12 @@ func init() { pctx.StaticVariable("JavacHeapSize", "2048M") pctx.StaticVariable("JavacHeapFlags", "-J-Xmx${JavacHeapSize}") + + // ErrorProne can use significantly more memory than javac alone, give it a higher heap + // size (b/221480398). + pctx.StaticVariable("ErrorProneHeapSize", "4096M") + pctx.StaticVariable("ErrorProneHeapFlags", "-J-Xmx${ErrorProneHeapSize}") + pctx.StaticVariable("DexFlags", "-JXX:OnError='cat hs_err_pid%p.log' -JXX:CICompilerCount=6 -JXX:+UseDynamicNumberOfGCThreads") pctx.StaticVariable("CommonJdkFlags", strings.Join([]string{