oom-编译android程序出现OOM

问题描述

编译android程序出现OOM

使用 jdk-7u79-windows-x64,android 5.0.1,IntelliJ IDEA Community Edition 14.0.2编译程序,出现OOM:

Error:Android Dex: java.lang.OutOfMemoryError: GC overhead limit exceeded
Error:Android Dex: at java.util.BitSet.initWords(BitSet.java:164)
Error:Android Dex: at java.util.BitSet.(BitSet.java:159)
Error:Android Dex: at com.android.dx.ssa.back.LivenessAnalyzer.(LivenessAnalyzer.java:116)
Error:Android Dex: at com.android.dx.ssa.back.LivenessAnalyzer.constructInterferenceGraph(LivenessAnalyzer.java:93)
Error:Android Dex: at com.android.dx.ssa.back.SsaToRop.(SsaToRop.java:82)

idea64.exe.vmoptions文件配置:
-Xms640m
-Xmx2048m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=225m
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djsse.enableSNIExtension=false
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50

不知道为什么编译出现内存溢出?

解决方案

代码问题。

临时可加这个看能否解决:-XX:-UseGCOverheadLimit

如果要分析,加这两个参数分析-verbose:gc -XX:+PrintGCDetails

解决方案二:

-XX:-UseGCOverheadLimit这个试过了,最后还是OOM了。。

解决方案三:

那打断点,检查函数调用栈,看看哪个方法最后调用到了BitSet.java:164这里,

你的代码中一定有长时间占用内存,不释放的东西。

时间: 2024-11-19 00:57:37

oom-编译android程序出现OOM的相关文章

Xamarin for VisualStudio 编译android程序报错

问题描述 折腾了几天都没搞定,请高手帮忙看看这个主要是什么原因导致的,谢谢!报错信息如下:1>Task"CompileToDalvik"1>CompileToDalvik1>JavaOptions:1>JavaMaximumHeapSize:1G1>ClassesOutputDirectory:objDebugandroidbinclasses1>JavaToolPath:D:Javajdk1.6.0_39\bin1>DxJarPath:F:t

android程序数据保存在单例模式中,保存在内存中,会oom吗

问题描述 android程序数据保存在单例模式中,保存在内存中,会oom吗 ```package com.amt.appstore.cache; import java.util.ArrayList; import java.util.List; import android.content.pm.PackageInfo; import com.amt.appstore.download.DownItem; import com.amt.appstore.model.AboutFirm; imp

Android 加载大图及多图避免程序出现OOM(OutOfMemory)异常

Android 加载大图及多图避免程序出现OOM(OutOfMemory)异常 1.高效加载大图片 我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状.不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小.比如说系统图片库里展示的图片大都是用手机摄像头拍出来的,这些图片的分辨率会比我们手机屏幕的分辨率高得多.大家应该知道,我们编写的应用程序都是有一定内存限制的,程序占用了过高的内存就容易出现OOM(OutOfMemory)异常.我们可以通过下面的代码看

qt-Qt For Android编译的程序实在是太大,怎么优化呢,一个基本的apk都有十兆左右了

问题描述 Qt For Android编译的程序实在是太大,怎么优化呢,一个基本的apk都有十兆左右了 Qt For Android编译的程序实在是太大,怎么优化呢,一个基本的apk都有十兆左右了 解决方案 Qt for Android 编译安卓原生可执行程序windows平台开发 QT for Android 应用程序QT for Android HelloWorld.apk!耶 解决方案二: 把必要的库去掉就可以了

cocos2d-x-小白求救,Cocos2dx代码编译成android程序时出错!

问题描述 小白求救,Cocos2dx代码编译成android程序时出错! 当我使用eclipse去编译Cocos2dx里的proj.android工程时下面的控制台报错:cc1plus.exe: error: unrecognized command line option ""-std=c++11""cc1plus.exe: warning: unrecognized command line option ""-Wno-extern-c-co

Android程序的反编译的过程分析

  一.前言   对抗反编译是指让apk文件或者dex文件无法正常通过反编译工具,而且有可能导致工具异常或者崩溃,如apktool.baksmali.dex2jar.JEB等等工具,如下图dex2jar无法正常工作.     二.Dex文件格式解析   目前大多数android软件的反编译工具都是开源的,比如apktool.Dex2jar.baksamli,大家可以非常方便的从github下载并源阅读代码,然后找到可以利用的点,再在自己的软件中加入干扰代码,让反编译工具出现异常或者无法正常阅读代

Eclipse开发Android程序如何在手机上运行

1.设置android手机为USB调试模式 打开手机里面的开发者选项->USB调试 2.通过eclipse上真机测试 没用真机时,用eclipse开发android程序都是点run,然后选择模拟器的.安装好手机的usb驱动后,还是点run,程序就会神奇的在真机上运行了,效果与在模拟器中的一样,而且速度比用模拟器块很多. 如果还是在模拟器上运行,右键->run as->run configurations->target 选项1:总是提示选择设备 选项2:在所有的设备上登陆 选项3:

在Linux上编译iOS程序

phpwind appcreator是向站长提供的自助app生成平台,目前只支持Android,为了支持iOS,搜了一些相关资料,发现可以在Linux上来编译iOS程序,但最后的签名什么的还没细究. 主要用到了一些cjacker移植的工具链(应该是基于苹果公司开源的一些代码),以及他开发的iphonesdk-utils(主要是一些辅助工具,比如ios-clang,会探测iPhone SDK,并自动加上一些参数来调用clang,避免自己手写很多参数,比如 --target 等). 介绍下具体步骤:

android程序,eclipse没报错,但是运行会意外停止

问题描述 android程序,eclipse没报错,但是运行会意外停止 本人刚开始学习android,跟着书写了个程序,这个程序是会有一个东西随着手指拖动而移动,编译完没有问题,但是在手机上运行的时候却是意外停止,错误显示在了MainActivity的第27行,我真不知道哪里错,代码和书上写的一模一样,求大神指导 MainActivity的代码: package com.example.test34; import android.app.Activity; import android.os.