我正在与一个使用Eclipse的团队合作,但我正在使用Netbeans。到目前为止,这不是问题。从repo更新时,他们在名为/lib-src
的目录下添加了一些源代码作为库。当我尝试编译代码时,我收到一个错误,它无法找到某些包......这些是/lib-src
下的包。
使用NetBeans我可以将库添加为文件夹,因此现在对这些包的引用很满意。但是,我在编译时遇到了这个新错误:
UNEXPECTED TOP-LEVEL ERROR:
java.lang.OutOfMemoryError: Java heap space
at java.util.HashMap.addEntry(HashMap.java:753)
at java.util.HashMap.put(HashMap.java:385)
at com.android.dx.dex.file.ClassDataItem.addStaticField(ClassDataItem.java:134)
at com.android.dx.dex.file.ClassDefItem.addStaticField(ClassDefItem.java:280)
at com.android.dx.dex.cf.CfTranslator.processFields(CfTranslator.java:159)
at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:130)
at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:85)
at com.android.dx.command.dexer.Main.processClass(Main.java:297)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:276)
at com.android.dx.command.dexer.Main.access$100(Main.java:56)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:228)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:134)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:190)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:122)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:190)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:122)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:190)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:122)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:190)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:122)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:190)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:122)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:190)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:122)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:190)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:122)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:108)
at com.android.dx.command.dexer.Main.processOne(Main.java:245)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:183)
at com.android.dx.command.dexer.Main.run(Main.java:139)
at com.android.dx.command.dexer.Main.main(Main.java:120)
at com.android.dx.command.Main.main(Main.java:87)
/home/aaron/NetBeansProjects/xbmc-remote/nbproject/build-impl.xml:411: exec returned: 3
BUILD FAILED (total time: 1 minute 25 seconds)
如果需要,我可以包含build-impl.xml文件,但我不认为这是主要问题。
有什么想法吗?
答案 0 :(得分:2)
dx.bat
是否涉及,如this thread?
Android内置工具似乎在运行dex工具时不使用
ANT_OPTS
变量 可以通过在dx.bat
批处理文件中取消注释行来解决问题。您可以在
platforms/YOUR_PLATFORM/tools/dx.bat
下的android SDK文件夹中找到它 在文件的最后有一个注释命令来增加堆空间 取消注释这一行应该可以解决问题。 Line应如下所示:
set javaOpts=-Xmx256M
答案 1 :(得分:1)
您可以尝试通过添加“-Xmx512m”作为JRE命令行参数来扩大堆空间。这可以通过编辑netbeans.conf(或通过IDE的JRE选项)永久完成。
netbeans.conf
位于netbeans安装目录的etc目录中。
通过在NetBeans中右键单击项目,选择Properties - >可以访问NetBeans使用的JRE选项。运行 - > VM选项。