
<dependencIEs> <dependency> <groupID>junit</groupID> <artifactID>junit</artifactID> <scope>test</scope> </dependency> <dependency> <groupID>com.Google.androID</groupID> <artifactID>androID</artifactID> <scope>provIDed</scope> </dependency> <dependency> <groupID>com.Google.androID</groupID> <artifactID>androID-test</artifactID> <scope>provIDed</scope> </dependency> <dependency> <groupID>com.admob.androID.ads</groupID> <artifactID>admob-androID</artifactID> <version>4.0.4</version> </dependency> <dependency> <groupID>com.Google.code</groupID> <artifactID>Google-API-translate-java</artifactID> <version>0.97</version> </dependency> <dependency> <groupID>com.db4o</groupID> <artifactID>db4o-core-java5</artifactID> <version>${com.db4o.version}</version> </dependency> <dependency> <groupID>com.db4o</groupID> <artifactID>db4o-cs-java5</artifactID> <version>${com.db4o.version}</version> </dependency> <dependency> <groupID>org.apache.james</groupID> <artifactID>apache-mime4j</artifactID> <version>0.6</version> </dependency> <dependency> <groupID>commons-codec</groupID> <artifactID>commons-codec</artifactID> <version>1.4</version> </dependency> <dependency> <groupID>org.apache.httpcomponents</groupID> <artifactID>httpmime</artifactID> <version>4.0.1</version> </dependency> <dependency> <groupID>org.Json</groupID> <artifactID>Json</artifactID> <version>20090211</version> </dependency> <dependency> <groupID>org.restlet.jee</groupID> <artifactID>org.restlet</artifactID> <version>${restlet.version}</version> </dependency></dependencIEs> 依赖性都很满意,但是当把所有的罐子都装入AndroID dex的时候,我得到一个内存不足的错误:
[INFO] UNEXPECTED top-LEVEL ERROR:[INFO] java.lang.OutOfMemoryError: Java heap space[INFO] at com.androID.dx.cf.code.OneLocalsArray.<init>(OneLocalsArray.java:46)[INFO] at com.androID.dx.cf.code.OneLocalsArray.copy(OneLocalsArray.java:51)[INFO] at com.androID.dx.cf.code.OneLocalsArray.copy(OneLocalsArray.java:33)[INFO] at com.androID.dx.cf.code.Frame.copy(Frame.java:98)[INFO] at com.androID.dx.cf.code.Ropper.processBlock(Ropper.java:683)[INFO] at com.androID.dx.cf.code.Ropper.doit(Ropper.java:639)[INFO] at com.androID.dx.cf.code.Ropper.convert(Ropper.java:252)[INFO] at com.androID.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:256)[INFO] at com.androID.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:134)[INFO] at com.androID.dx.dex.cf.CfTranslator.translate(CfTranslator.java:87)[INFO] at com.androID.dx.command.dexer.Main.processClass(Main.java:483)[INFO] at com.androID.dx.command.dexer.Main.processfileBytes(Main.java:455)[INFO] at com.androID.dx.command.dexer.Main.access0(Main.java:67)[INFO] at com.androID.dx.command.dexer.Main.processfileBytes(Main.java:394)[INFO] at com.androID.dx.cf.direct.ClasspathOpener.processArchive(ClasspathOpener.java:245)[INFO] at com.androID.dx.cf.direct.ClasspathOpener.processOne(ClasspathOpener.java:131)[INFO] at com.androID.dx.cf.direct.ClasspathOpener.process(ClasspathOpener.java:109)[INFO] at com.androID.dx.command.dexer.Main.processOne(Main.java:418)[INFO] at com.androID.dx.command.dexer.Main.processAllfiles(Main.java:329)[INFO] at com.androID.dx.command.dexer.Main.run(Main.java:206)[INFO] at com.androID.dx.command.dexer.Main.main(Main.java:174)[INFO] at com.androID.dx.command.Main.main(Main.java:95)
试图增加内存添加这个:
<plugin> <groupID>org.apache.maven.plugins</groupID> <artifactID>maven-surefire-plugin</artifactID> <configuration> <forkMode>pertest</forkMode> <argline>-xms1024m -Xmx2048m</argline> <testFailureIgnore>false</testFailureIgnore> <skip>false</skip> </configuration></plugin>
或这个:
<plugin> <groupID>com.jayway.maven.plugins.androID.generation2</groupID> <artifactID>androID-maven-plugin</artifactID> <inherited>true</inherited> <configuration> <argline>-Xmx1024m</argline>
…
或者像这样导出maven_opts:
export MAVEN_OPTS=-Xmx1024m
不解决问题
我收到几个警告,关于使用旧类格式编译的依赖文件中的类,但我不确定这是问题的根源:
[INFO] warning: Ignoring InnerClasses attribute for an anonymous inner class[INFO] (org.osgi.framework.adminPermission) that doesn't come with an[INFO] associated EnclosingMethod attribute. This class was probably produced by a[INFO] compiler that dID not target the modern .class file format. The recommended[INFO] solution is to recompile the class from source,using an up-to-date compiler[INFO] and without specifying any "-target" type options. The consequence of ignoring[INFO] this warning is that reflective operations on this class will incorrectly[INFO] indicate that it is *not* an inner class.
我将不胜感激任何帮助.这是从控制台打开调试的完整输出,因此您可以仔细查看错误:
http://pastebin.com/5DPBihH0
最好.
达马
解决方法 这是一个已知的问题,但我相信它已在androID-maven-plugin 3.1.0中得到修复.最新的是3.1.1.你没有发布你的pom.xml,所以我不知道这是不是问题,但听起来就是这样.如果由于某种原因无法升级,则这是适用的配置:
<dex> <jvmArguments> <jvmArgument>-xms256m</jvmArgument> <jvmArgument>-Xmx512m</jvmArgument> </jvmArguments> </dex>
这是他们网站上报道的问题:http://code.google.com/p/maven-android-plugin/issues/detail?id=146
还有Springsource博客:http://blog.springsource.org/2011/11/07/updated-maven-support-for-android-projects/
总结以上是内存溢出为你收集整理的在尝试创建dex时,android-maven-plugin会导致java.lang.OutOfMemoryError全部内容,希望文章能够帮你解决在尝试创建dex时,android-maven-plugin会导致java.lang.OutOfMemoryError所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)