如何在编译Appcelerator Android应用程序时解决java.lang.OutOfMemoryError?

时间:2016-03-01 04:05:40

标签: android appcelerator appcelerator-titanium

我尝试使用Appcelerator编译apk但我收到此错误。如何解决它。

目前我正在使用Titanium sdk:5.2.0.GA

    >Error:
    >ERROR :  Failed to run dexer:
    >ERROR :  UNEXPECTED TOP-LEVEL ERROR:
    >ERROR :  java.lang.OutOfMemoryError: Java heap space

其他错误

  

[错误]:无法运行dexer:   [错误]:
  [错误]:意外的顶级错误:   [错误]:java.lang.OutOfMemoryError:Java堆空间   [错误]:在java.util.Arrays.copyOf(Arrays.java:2271)   [错误]:在java.io.ByteArrayOutputStream.toByteArray(ByteArrayOutputStream.java:191)   [错误]:在com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:279)   [错误]:在com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)   [错误]:在com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)   [错误]:在com.android.dx.command.dexer.Main.processOne(Main.java:672)   [错误]:在com.android.dx.command.dexer.Main.processAllFiles(Main.java:574)   [错误]:在com.android.dx.command.dexer.Main.runMonoDex(Main.java:311)   [错误]:在com.android.dx.command.dexer.Main.run(Main.java:277)   [错误]:在com.android.dx.command.dexer.Main.main(Main.java:245)   [错误]:在com.android.dx.command.Main.main(Main.java:106)

你好, 我从链接获得解决方案,代码是:

   <property name="android.javac.maxmemory" type="string">1024M</property>
   <property name="android.dx.maxmemory" type="string">2048M</property>

由于

2 个答案:

答案 0 :(得分:0)

你在代码中做错了什么。设置较大的maxmemory或较大的堆大小不是正确的修复方法。此类解决方案不适用于所有设备和Android版本。您正在请求更多内存,但没有任何内容需要操作系统将其授予您的应用。

你有一个memory leak或者你只是不必要地使用内存以低效的方式创建对象。重新检查应用程序的结构以优化它,而不是使用清单设置对其进行创可。

答案 1 :(得分:0)

在为Android构建时,Appcelerator无法处理太多的javascript文件。

我有128个控制器&amp; 188次查看文件。我删除了所有未使用的文件现在我有35个控制器&amp; 56个视图文件,这个在android上成功构建。