在尝试创建dex时,android-maven-plugin会导致java.lang.OutOfMemoryError

在尝试创建dex时,android-maven-plugin会导致java.lang.OutOfMemoryError,第1张

概述我需要一只手.我在 android项目中使用 android-maven-plugin 3.0.0和maven-external-dependency-plugin 0.4.我正在使用来自不同存储库的这些库作为依赖项: <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit 我需要一只手.我在 android项目中使用 android-maven-plugin 3.0.0和maven-external-dependency-plugin 0.4.我正在使用来自不同存储库的这些库作为依赖项:

<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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1127037.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存