在本文中,我们将带你了解改造内部for循环调用,java.lang.OutOfMemoryError:在这篇文章中,我们将为您详细介绍改造内部for循环调用,java.lang.OutOfMemory
在本文中,我们将带你了解改造内部 for 循环调用,java.lang.OutOfMemoryError:在这篇文章中,我们将为您详细介绍改造内部 for 循环调用,java.lang.OutOfMemoryError:的方方面面,并解答java内外循环常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的Android:java.lang.OutOfMemoryError:、Android:java.lang.OutOfMemoryError:线程创建失败、Gradle java.lang.OutOfMemoryError:元空间、java error ------java.lang.OutOfMemoryError:Direct buffer memory 直接内存溢出。
本文目录一览:- 改造内部 for 循环调用,java.lang.OutOfMemoryError:(java内外循环)
- Android:java.lang.OutOfMemoryError:
- Android:java.lang.OutOfMemoryError:线程创建失败
- Gradle java.lang.OutOfMemoryError:元空间
- java error ------java.lang.OutOfMemoryError:Direct buffer memory 直接内存溢出
改造内部 for 循环调用,java.lang.OutOfMemoryError:(java内外循环)
如何解决改造内部 for 循环调用,java.lang.OutOfMemoryError:?
我在 for 循环内有一个嵌套的改造服务器请求调用,但出现错误
java.lang.OutOfMemoryError: 分配 2359304 失败
我该如何解决这个问题。有没有其他方法可以循环 Retrofit 服务器调用..
List<ID> idList = new Arraylist<>();
int idCompleted = 0;
idList.size() 大于 30000;
这里是我的功能:
public void getNewList(){
for(int i=0;i<idList.size();i++) {
int iValue = i;
Call<String> call = RetrofitClient.getInstance().getMyApi().getList(idList.get(i).getId(),"A");
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call,Response<String> response) {
String responseA = response.body().toString();
Call<String> call1 = RetrofitClient.getInstance().getMyApi().getList(idList.get(iValue).getId(),"B");
call1.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call,Response<String> response) {
String responseB = response.body().toString();
addToFile(responseA,responseB);
idCompleted ++;
if (idCompleted == idList.size()) {
Log.i("Finished : ","Yes")
}else {
getNewList();
}
}
@Override
public void onFailure(Call<String> call,Throwable t) {
idCompleted ++;
if (idCompleted == idList.size()) {
Log.i("Finished : ","Yes")
}else {
getNewList();
}
}
});
}
@Override
public void onFailure(Call<String> call,Throwable t) {
idCompleted ++;
if (idCompleted == idList.size()) {
Log.i("Finished : ","Yes")
}else {
getNewList();
}
}
});
}
解决方法
如果数据要显示在 RecyclerView 上,你应该在 RecyclerView Adapter 中调用网络请求,这样它一次只能做几个。
如果没有,你应该修改你的循环,让它一次只能调用几个,而不是像现在那样同时调用所有。
没有设备有足够的 RAM 同时处理 30000 个网络请求。只需同时做 2-3 个。
Android:java.lang.OutOfMemoryError:
在drawable文件夹中有大量的图像说超过100,我正在开发图像的动画应用程序.我使用imageview来显示gif图像.我已经将Split gif图像的概念用于多个PNG格式的图像,然后使用它.
每当用户进入应用程序时,我可以看到内存越来越多,直到用户获取java.lang.OutOfMemoryError为止.
那么处理许多图像的最佳/正确的方法是什么?
以下是我的代码:
dog_animation.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/DogView" android:orientation="vertical" > <ImageView android:id="@+id/dog_animation" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.19" />
dog_animation.xml(可绘制文件夹)
<?xml version="1.0" encoding="utf-8"?>
<item android:drawable="@drawable/image" android:duration="50"/> <item android:drawable="@drawable/image1" android:duration="50"/> <item android:drawable="@drawable/image2" android:duration="50"/> <item android:drawable="@drawable/image3" android:duration="50"/> <item android:drawable="@drawable/image4" android:duration="50"/> <item android:drawable="@drawable/image5" android:duration="50"/> <item android:drawable="@drawable/image6" android:duration="50"/> <item android:drawable="@drawable/image7" android:duration="50"/> <item android:drawable="@drawable/image8" android:duration="50"/> <item android:drawable="@drawable/image9" android:duration="50"/> <item android:drawable="@drawable/image10" android:duration="50"/> <item android:drawable="@drawable/image11" android:duration="50"/> <item android:drawable="@drawable/image12" android:duration="50"/> <item android:drawable="@drawable/image13" android:duration="50"/> <item android:drawable="@drawable/image14" android:duration="50"/> <item android:drawable="@drawable/image15" android:duration="50"/> <item android:drawable="@drawable/image16" android:duration="50"/> <item android:drawable="@drawable/image17" android:duration="50"/> <item android:drawable="@drawable/image18" android:duration="50"/> <item android:drawable="@drawable/image19" android:duration="50"/> <item android:drawable="@drawable/image20" android:duration="50"/> <item android:drawable="@drawable/image21" android:duration="50"/> <item android:drawable="@drawable/image22" android:duration="50"/> <item android:drawable="@drawable/image23" android:duration="50"/> <item android:drawable="@drawable/image24" android:duration="50"/> <item android:drawable="@drawable/image25" android:duration="50"/> <item android:drawable="@drawable/image26" android:duration="50"/> <item android:drawable="@drawable/image27" android:duration="50"/> <item android:drawable="@drawable/image28" android:duration="50"/> <item android:drawable="@drawable/image29" android:duration="50"/> <item android:drawable="@drawable/image30" android:duration="50"/> <item android:drawable="@drawable/image31" android:duration="50"/> <item android:drawable="@drawable/image32" android:duration="50"/> <item android:drawable="@drawable/image33" android:duration="50"/> <item android:drawable="@drawable/image34" android:duration="50"/> <item android:drawable="@drawable/image35" android:duration="50"/> <item android:drawable="@drawable/image36" android:duration="50"/> <item android:drawable="@drawable/image37" android:duration="50"/> <item android:drawable="@drawable/image38" android:duration="50"/> <item android:drawable="@drawable/image39" android:duration="50"/> <item android:drawable="@drawable/image40" android:duration="50"/> <item android:drawable="@drawable/image41" android:duration="50"/> <item android:drawable="@drawable/image42" android:duration="50"/> <item android:drawable="@drawable/image43" android:duration="50"/> <item android:drawable="@drawable/image44" android:duration="50"/> <item android:drawable="@drawable/image45" android:duration="50"/> <item android:drawable="@drawable/image46" android:duration="50"/> <item android:drawable="@drawable/image47" android:duration="50"/> <item android:drawable="@drawable/image48" android:duration="50"/> <item android:drawable="@drawable/image49" android:duration="50"/> <item android:drawable="@drawable/image50" android:duration="50"/> <item android:drawable="@drawable/image51" android:duration="50"/> <item android:drawable="@drawable/image52" android:duration="50"/> <item android:drawable="@drawable/image53" android:duration="50"/> <item android:drawable="@drawable/image54" android:duration="50"/> <item android:drawable="@drawable/image55" android:duration="50"/> <item android:drawable="@drawable/image56" android:duration="50"/>
Dog_Animation.java
public class Dog_Animation extends Activity { Timer timer = new Timer(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestwindowFeature(Window.FEATURE_NO_TITLE); getwindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.dog_animation); ImageView img = (ImageView) findViewById(R.id.dog_animation); img.setBackgroundResource(R.drawable.dog_animation); AnimationDrawable frameAnimation = (AnimationDrawable) img .getBackground(); frameAnimation.start(); timer.schedule(new TimerTask() { public void run() { Intent intent = new Intent(Dog_Animation.this,Man_Animation.class); startActivity(intent); } },10000); } }
现在的问题是当我尝试从一个活动移动到另一个具有相同的其他图像的动画,它给我的错误java.lang.OutOfMemory.
我尝试过如此多的不同解决方案
@Override protected void onDestroy() { super.onDestroy(); unbindDrawables(findViewById(R.id.DogView)); System.gc(); } private void unbindDrawables(View view) { if (view.getBackground() != null) { view.getBackground().setCallback(null); } if (view instanceof ViewGroup) { for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) { unbindDrawables(((ViewGroup) view).getChildAt(i)); } ((ViewGroup) view).removeAllViews(); } }
所以别的,但任何解决方案都不适合我.请帮我解决这个问题.即使我已经提到http://androidactivity.wordpress.com/2011/09/24/solution-for-outofmemoryerror-bitmap-size-exceeds-vm-budget/这个链接,但没有解决问题.
解决方法
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:largeHeap="true"/>
Android:java.lang.OutOfMemoryError:线程创建失败
java.lang.OutOfMemoryError: thread creation Failed at java.lang.VMThread.create(Native Method) at java.lang.Thread.start(Thread.java:1327) at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:901) at java.util.concurrent.ThreadPoolExecutor.processWorkerExit(ThreadPoolExecutor.java:950) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1086) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) at java.lang.Thread.run(Thread.java:1096)
我知道它是内存不足错误但stacktrace没有提供任何信息,它在我的代码中启动.所以我正在努力追踪它,因为我有一个相对较大的应用程序(20个活动),有很多AsyncTasks和线程.不知道从哪里开始.任何帮助都是有益的
解决方法
Gradle java.lang.OutOfMemoryError:元空间
目前我正在使用Gradle 5.2.1配置的Spring boot 2.1项目。但是我在构建项目时遇到内存错误,无法理解确切原因。
请找到附件日志
Caused by: org.gradle.cache.CacheOpenException: Could not open proj generic class cache for build file '/Users/mac/project/build.gradle' (/Users/mac/.gradle/caches/5.2.1/scripts/eajdx6l75dt1ypyljdsfupplm/proj/proj3ca90766b0adfce53d4b035e7e9dc5fe).
at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:80)
at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:42)
at org.gradle.cache.internal.DefaultCacheFactory.doOpen(DefaultCacheFactory.java:94)
at org.gradle.cache.internal.DefaultCacheFactory.open(DefaultCacheFactory.java:68)
at org.gradle.cache.internal.DefaultCacheRepository$PersistentCacheBuilder.open(DefaultCacheRepository.java:118)
at org.gradle.groovy.scripts.internal.FileCacheBackedScriptClassCompiler$RemapBuildScriptsAction.execute(FileCacheBackedScriptClassCompiler.java:421)
at org.gradle.groovy.scripts.internal.FileCacheBackedScriptClassCompiler$RemapBuildScriptsAction.execute(FileCacheBackedScriptClassCompiler.java:390)
at org.gradle.groovy.scripts.internal.FileCacheBackedScriptClassCompiler$ProgressReportingInitializer.execute(FileCacheBackedScriptClassCompiler.java:175)
at org.gradle.groovy.scripts.internal.FileCacheBackedScriptClassCompiler$ProgressReportingInitializer.execute(FileCacheBackedScriptClassCompiler.java:155)
at org.gradle.cache.internal.DefaultPersistentDirectoryCache$Initializer.initialize(DefaultPersistentDirectoryCache.java:98)
at org.gradle.cache.internal.FixedSharedModeCrossProcessCacheAccess$1.run(FixedSharedModeCrossProcessCacheAccess.java:85)
at org.gradle.cache.internal.DefaultFileLockManager$DefaultFileLock.doWriteAction(DefaultFileLockManager.java:207)
at org.gradle.cache.internal.DefaultFileLockManager$DefaultFileLock.writeFile(DefaultFileLockManager.java:197)
at org.gradle.cache.internal.FixedSharedModeCrossProcessCacheAccess.open(FixedSharedModeCrossProcessCacheAccess.java:83)
at org.gradle.cache.internal.DefaultCacheAccess.open(DefaultCacheAccess.java:142)
at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:78)
... 133 more
Caused by: java.lang.OutOfMemoryError: Metaspace
java error ------java.lang.OutOfMemoryError:Direct buffer memory 直接内存溢出
java error ------java.lang.OutOfMemoryError:Direct buffer memory 直接内存溢出
操作系统内存已经使用完了,不针对jvm堆内存,所有操作系统内存使用完了,由于不是GC的管辖范围,所有不会进行垃圾回收;
我们今天的关于改造内部 for 循环调用,java.lang.OutOfMemoryError:和java内外循环的分享已经告一段落,感谢您的关注,如果您想了解更多关于Android:java.lang.OutOfMemoryError:、Android:java.lang.OutOfMemoryError:线程创建失败、Gradle java.lang.OutOfMemoryError:元空间、java error ------java.lang.OutOfMemoryError:Direct buffer memory 直接内存溢出的相关信息,请在本站查询。
本文标签: