NetBeans不喜欢lib-src中的库

时间:2010-04-17 13:06:25

标签: java android eclipse netbeans

我正在与一个使用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文件,但我不认为这是主要问题。

有什么想法吗?

2 个答案:

答案 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选项。