Android:java.lang.OutOfMemoryError: Failed to allocate a 23970828 byte allocation with 2097152 free bytes and...
I want to show the Bitmap image in ImageView from sd card which is stored already. After run my application is crash and getting OutOfMemoryError error of:
(java.lang.OutOfMemoryError: Failed to allocate a 23970828 byte allocation with 2097152 free bytes and 2MB until OOM)
I have no idea or why its out of memory. I think my image size is very large so I tried to change it.
Iterator<String> it = imageArray.iterator();
while (it.hasNext()) {
Object element = it.next();
String objElement = element.toString();
Log.e("objElement ", " = " + objElement);
final ImageView imageView = new ImageView (getContext());
final ProgressBar pBar = new ProgressBar(getContext(), null,
android.R.attr.progressBarStyleSmall);
imageView.setTag(it);
pBar.setTag(it);
imageView.setImageResource(R.drawable.img_placeholder);
pBar.setVisibility(View.VISIBLE);
if (objElement.endsWith(mp3_Pattern)) {
Log.e("Mp3 ", " ends with ");
pBar.setVisibility(View.GONE);
imageView.setImageResource(R.drawable.audio_control);
}
if (objElement.endsWith(png_Pattern)) {
Bitmap bitmap = BitmapFactory.decodeFile(objElement);
int size = Math.min(bitmap.getWidth(), bitmap.getHeight());
int x = (bitmap.getWidth() - size) / 2;
int y = (bitmap.getHeight() - size) / 2;
Bitmap bitmap_Resul = Bitmap.createBitmap(bitmap, x, y, size, size);
Log.e("bitmap_Resul "," = "+ bitmap_Resul);
if (bitmap_Resul != bitmap) {
bitmap.recycle();
}
imageView.setImageBitmap(bitmap_Resul);
Log.e("png_Pattern ", " ends with ");
Log.e(" bitmap "," = " + bitmap);
}
holder.linearLayout.addView(imageView);
holder.linearLayout.addView(pBar);
The log cat information:
08-27 14:11:15.307 1857-1857/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.tazeen.classnkk, PID: 1857
java.lang.OutOfMemoryError: Failed to allocate a 23970828 byte allocation with 2097152 free bytes and 2MB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:812)
at android.graphics.Bitmap.createBitmap(Bitmap.java:789)
at android.graphics.Bitmap.createBitmap(Bitmap.java:709)
at android.graphics.Bitmap.createBitmap(Bitmap.java:634)
at com.example.tazeen.classnkk.AllPosts_Page$MyListAdapter.getView(AllPosts_Page.java:357)
at android.widget.AbsListView.obtainView(AbsListView.java:2347)
at android.widget.ListView.makeAndAddView(ListView.java:1864)
at android.widget.ListView.fillDown(ListView.java:698)
at android.widget.ListView.fillFromTop(ListView.java:759)
at android.widget.ListView.layoutChildren(ListView.java:1659)
at android.widget.AbsListView.onLayout(AbsListView.java:2151)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
android android-bitmap
add a comment |
I want to show the Bitmap image in ImageView from sd card which is stored already. After run my application is crash and getting OutOfMemoryError error of:
(java.lang.OutOfMemoryError: Failed to allocate a 23970828 byte allocation with 2097152 free bytes and 2MB until OOM)
I have no idea or why its out of memory. I think my image size is very large so I tried to change it.
Iterator<String> it = imageArray.iterator();
while (it.hasNext()) {
Object element = it.next();
String objElement = element.toString();
Log.e("objElement ", " = " + objElement);
final ImageView imageView = new ImageView (getContext());
final ProgressBar pBar = new ProgressBar(getContext(), null,
android.R.attr.progressBarStyleSmall);
imageView.setTag(it);
pBar.setTag(it);
imageView.setImageResource(R.drawable.img_placeholder);
pBar.setVisibility(View.VISIBLE);
if (objElement.endsWith(mp3_Pattern)) {
Log.e("Mp3 ", " ends with ");
pBar.setVisibility(View.GONE);
imageView.setImageResource(R.drawable.audio_control);
}
if (objElement.endsWith(png_Pattern)) {
Bitmap bitmap = BitmapFactory.decodeFile(objElement);
int size = Math.min(bitmap.getWidth(), bitmap.getHeight());
int x = (bitmap.getWidth() - size) / 2;
int y = (bitmap.getHeight() - size) / 2;
Bitmap bitmap_Resul = Bitmap.createBitmap(bitmap, x, y, size, size);
Log.e("bitmap_Resul "," = "+ bitmap_Resul);
if (bitmap_Resul != bitmap) {
bitmap.recycle();
}
imageView.setImageBitmap(bitmap_Resul);
Log.e("png_Pattern ", " ends with ");
Log.e(" bitmap "," = " + bitmap);
}
holder.linearLayout.addView(imageView);
holder.linearLayout.addView(pBar);
The log cat information:
08-27 14:11:15.307 1857-1857/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.tazeen.classnkk, PID: 1857
java.lang.OutOfMemoryError: Failed to allocate a 23970828 byte allocation with 2097152 free bytes and 2MB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:812)
at android.graphics.Bitmap.createBitmap(Bitmap.java:789)
at android.graphics.Bitmap.createBitmap(Bitmap.java:709)
at android.graphics.Bitmap.createBitmap(Bitmap.java:634)
at com.example.tazeen.classnkk.AllPosts_Page$MyListAdapter.getView(AllPosts_Page.java:357)
at android.widget.AbsListView.obtainView(AbsListView.java:2347)
at android.widget.ListView.makeAndAddView(ListView.java:1864)
at android.widget.ListView.fillDown(ListView.java:698)
at android.widget.ListView.fillFromTop(ListView.java:759)
at android.widget.ListView.layoutChildren(ListView.java:1659)
at android.widget.AbsListView.onLayout(AbsListView.java:2151)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
android android-bitmap
3
check the pixels of the image, the width must not exceed 1440 and height 2560, by doing this it won't show OutOfMemoryError
– Pankaj Lilan
Dec 16 '16 at 9:28
1
@PankajLilan Where did you find these values (1440 X 2560)? Any references from android documentations?
– Lijo
Jul 14 '17 at 18:00
See also stackoverflow.com/questions/477572/…
– JFreeman
Feb 14 at 3:53
add a comment |
I want to show the Bitmap image in ImageView from sd card which is stored already. After run my application is crash and getting OutOfMemoryError error of:
(java.lang.OutOfMemoryError: Failed to allocate a 23970828 byte allocation with 2097152 free bytes and 2MB until OOM)
I have no idea or why its out of memory. I think my image size is very large so I tried to change it.
Iterator<String> it = imageArray.iterator();
while (it.hasNext()) {
Object element = it.next();
String objElement = element.toString();
Log.e("objElement ", " = " + objElement);
final ImageView imageView = new ImageView (getContext());
final ProgressBar pBar = new ProgressBar(getContext(), null,
android.R.attr.progressBarStyleSmall);
imageView.setTag(it);
pBar.setTag(it);
imageView.setImageResource(R.drawable.img_placeholder);
pBar.setVisibility(View.VISIBLE);
if (objElement.endsWith(mp3_Pattern)) {
Log.e("Mp3 ", " ends with ");
pBar.setVisibility(View.GONE);
imageView.setImageResource(R.drawable.audio_control);
}
if (objElement.endsWith(png_Pattern)) {
Bitmap bitmap = BitmapFactory.decodeFile(objElement);
int size = Math.min(bitmap.getWidth(), bitmap.getHeight());
int x = (bitmap.getWidth() - size) / 2;
int y = (bitmap.getHeight() - size) / 2;
Bitmap bitmap_Resul = Bitmap.createBitmap(bitmap, x, y, size, size);
Log.e("bitmap_Resul "," = "+ bitmap_Resul);
if (bitmap_Resul != bitmap) {
bitmap.recycle();
}
imageView.setImageBitmap(bitmap_Resul);
Log.e("png_Pattern ", " ends with ");
Log.e(" bitmap "," = " + bitmap);
}
holder.linearLayout.addView(imageView);
holder.linearLayout.addView(pBar);
The log cat information:
08-27 14:11:15.307 1857-1857/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.tazeen.classnkk, PID: 1857
java.lang.OutOfMemoryError: Failed to allocate a 23970828 byte allocation with 2097152 free bytes and 2MB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:812)
at android.graphics.Bitmap.createBitmap(Bitmap.java:789)
at android.graphics.Bitmap.createBitmap(Bitmap.java:709)
at android.graphics.Bitmap.createBitmap(Bitmap.java:634)
at com.example.tazeen.classnkk.AllPosts_Page$MyListAdapter.getView(AllPosts_Page.java:357)
at android.widget.AbsListView.obtainView(AbsListView.java:2347)
at android.widget.ListView.makeAndAddView(ListView.java:1864)
at android.widget.ListView.fillDown(ListView.java:698)
at android.widget.ListView.fillFromTop(ListView.java:759)
at android.widget.ListView.layoutChildren(ListView.java:1659)
at android.widget.AbsListView.onLayout(AbsListView.java:2151)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
android android-bitmap
I want to show the Bitmap image in ImageView from sd card which is stored already. After run my application is crash and getting OutOfMemoryError error of:
(java.lang.OutOfMemoryError: Failed to allocate a 23970828 byte allocation with 2097152 free bytes and 2MB until OOM)
I have no idea or why its out of memory. I think my image size is very large so I tried to change it.
Iterator<String> it = imageArray.iterator();
while (it.hasNext()) {
Object element = it.next();
String objElement = element.toString();
Log.e("objElement ", " = " + objElement);
final ImageView imageView = new ImageView (getContext());
final ProgressBar pBar = new ProgressBar(getContext(), null,
android.R.attr.progressBarStyleSmall);
imageView.setTag(it);
pBar.setTag(it);
imageView.setImageResource(R.drawable.img_placeholder);
pBar.setVisibility(View.VISIBLE);
if (objElement.endsWith(mp3_Pattern)) {
Log.e("Mp3 ", " ends with ");
pBar.setVisibility(View.GONE);
imageView.setImageResource(R.drawable.audio_control);
}
if (objElement.endsWith(png_Pattern)) {
Bitmap bitmap = BitmapFactory.decodeFile(objElement);
int size = Math.min(bitmap.getWidth(), bitmap.getHeight());
int x = (bitmap.getWidth() - size) / 2;
int y = (bitmap.getHeight() - size) / 2;
Bitmap bitmap_Resul = Bitmap.createBitmap(bitmap, x, y, size, size);
Log.e("bitmap_Resul "," = "+ bitmap_Resul);
if (bitmap_Resul != bitmap) {
bitmap.recycle();
}
imageView.setImageBitmap(bitmap_Resul);
Log.e("png_Pattern ", " ends with ");
Log.e(" bitmap "," = " + bitmap);
}
holder.linearLayout.addView(imageView);
holder.linearLayout.addView(pBar);
The log cat information:
08-27 14:11:15.307 1857-1857/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.tazeen.classnkk, PID: 1857
java.lang.OutOfMemoryError: Failed to allocate a 23970828 byte allocation with 2097152 free bytes and 2MB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:812)
at android.graphics.Bitmap.createBitmap(Bitmap.java:789)
at android.graphics.Bitmap.createBitmap(Bitmap.java:709)
at android.graphics.Bitmap.createBitmap(Bitmap.java:634)
at com.example.tazeen.classnkk.AllPosts_Page$MyListAdapter.getView(AllPosts_Page.java:357)
at android.widget.AbsListView.obtainView(AbsListView.java:2347)
at android.widget.ListView.makeAndAddView(ListView.java:1864)
at android.widget.ListView.fillDown(ListView.java:698)
at android.widget.ListView.fillFromTop(ListView.java:759)
at android.widget.ListView.layoutChildren(ListView.java:1659)
at android.widget.AbsListView.onLayout(AbsListView.java:2151)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
android android-bitmap
android android-bitmap
edited Jul 3 '17 at 13:20
Cœur
18.7k9110150
18.7k9110150
asked Aug 27 '15 at 8:55
androidTagandroidTag
1,55661119
1,55661119
3
check the pixels of the image, the width must not exceed 1440 and height 2560, by doing this it won't show OutOfMemoryError
– Pankaj Lilan
Dec 16 '16 at 9:28
1
@PankajLilan Where did you find these values (1440 X 2560)? Any references from android documentations?
– Lijo
Jul 14 '17 at 18:00
See also stackoverflow.com/questions/477572/…
– JFreeman
Feb 14 at 3:53
add a comment |
3
check the pixels of the image, the width must not exceed 1440 and height 2560, by doing this it won't show OutOfMemoryError
– Pankaj Lilan
Dec 16 '16 at 9:28
1
@PankajLilan Where did you find these values (1440 X 2560)? Any references from android documentations?
– Lijo
Jul 14 '17 at 18:00
See also stackoverflow.com/questions/477572/…
– JFreeman
Feb 14 at 3:53
3
3
check the pixels of the image, the width must not exceed 1440 and height 2560, by doing this it won't show OutOfMemoryError
– Pankaj Lilan
Dec 16 '16 at 9:28
check the pixels of the image, the width must not exceed 1440 and height 2560, by doing this it won't show OutOfMemoryError
– Pankaj Lilan
Dec 16 '16 at 9:28
1
1
@PankajLilan Where did you find these values (1440 X 2560)? Any references from android documentations?
– Lijo
Jul 14 '17 at 18:00
@PankajLilan Where did you find these values (1440 X 2560)? Any references from android documentations?
– Lijo
Jul 14 '17 at 18:00
See also stackoverflow.com/questions/477572/…
– JFreeman
Feb 14 at 3:53
See also stackoverflow.com/questions/477572/…
– JFreeman
Feb 14 at 3:53
add a comment |
26 Answers
26
active
oldest
votes
OutOfMemoryError is the most common problem occured in android while especially dealing with bitmaps. This error is thrown by the Java Virtual Machine (JVM) when an object cannot be allocated due to lack of memory space and also, the garbage collector cannot free some space.
As mentioned by Aleksey, you can add below entities in your manifest file android:hardwareAccelerated="false"
, android:largeHeap="true"
it will work for some environment's.
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
you should definately read some of Androids Developer concept's, specially here:Displaying Bitmaps Efficiently
Read all 5 topics and rewrite your code again. If it still doesn't work we will be happy to see what you've done wrong with the tutorial material.
Here some of possible answers for these type of errors in SOF
Android: BitmapFactory.decodeStream() out of memory with a 400KB file with 2MB free heap
How to solve java.lang.OutOfMemoryError trouble in Android
Android : java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
Solution for OutOfMemoryError: bitmap size exceeds VM budget
Edit: From the comments of @cjnash
For anyone that still had crashes after they added this line, try sticking your image into your res/drawable-xhdpi/ folder instead of your res/drawable/ and it might resolve your issue.
1
Could you please post how you eventually solved the issue? Because i have the same problem... Actually you can add in your manifest this lines android:hardwareAccelerated="false" , android:largeHeap="true" it is working for some situations, but be aware the that another part of code can be arguing with this...
– Aleksey Timoshchenko
Apr 20 '16 at 6:37
3
app navigation is becoming very slow after adding this.
– Uma Achanta
Dec 30 '16 at 7:47
4
android:hardwareAccelerated="false" freezing your app
– Rahim Rahimov
Apr 15 '17 at 15:00
1
For anyone that still had crashes after they added this line, try sticking your image into your res/drawable-xhdpi/ folder instead of your res/drawable/ and it might resolve your issue.
– cjnash
Aug 1 '17 at 15:45
2
why would you suggest android:hardwareAccelerated="false ? what is the benefit of it?
– batmaci
Dec 13 '17 at 16:04
|
show 7 more comments
have you tried adding this to your manifest under applications? android:largeHeap="true"
?
like this
<application
android:name=".ParaseApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:largeHeap="true" >
10
I have tried with this android:largeHeap="true" but getting same error
– androidTag
Aug 27 '15 at 9:42
1
try compressing your image before you can use this link to do so tinyjpg.com
– TSG
Aug 27 '15 at 11:22
1
you can also compress png with this site
– TSG
Aug 27 '15 at 11:23
add a comment |
Actually you can add in your manifest these lines android:hardwareAccelerated="false"
, android:largeHeap="true"
it is working for some situations, but be aware that the other part of code can be arguing with this.
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
2
didn't work, it crashed with the same error, when used Bitmap.createBitmap
– NarendraJi
Sep 14 '16 at 7:51
@King sorry( i also spent some time in order to solve this issue, and it is work for me. But it is just one of the way... There are a lot of different approach
– Aleksey Timoshchenko
Sep 28 '16 at 8:19
@MrNarendra how didi you solve it then?
– Shruti
Jul 19 '17 at 5:27
What is the purpose of android:hardwareAccelerated="false"?
– IgorGanapolsky
Oct 13 '17 at 15:05
@IgorGanapolsky From official doc says.. see this link
– Shylendra Madda
Oct 23 '17 at 5:40
add a comment |
For me, the problem was that my .png file was being de-compressed to be a really huge bitmap in memory, because the image had very large dimensions (even though the file size was tiny).
So the fix was to simply resize the image :)
1
this is the correct solution, because I firstly tried above solutions, but after applyingandroid:hardwareAccelerated="false"
, some animations like layout shadow were not working. But after resizing all the problems were solved thank you! +1 for this hint!
– Kaushal28
May 29 '17 at 5:29
1
this fixed my problem. Thank you @petrus
– Hùng Nguyễn
Sep 10 '17 at 4:12
add a comment |
This should work
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
mBitmapInsurance = BitmapFactory.decodeFile(mCurrentPhotoPath,options);
This answer is solved my problem.
– Thirumalvalavan
Jan 29 '18 at 13:13
add a comment |
Use Glide Library and Override size to less size;
Glide.with(mContext).load(imgID).asBitmap().override(1080, 600).into(mImageView);
add a comment |
Resize your image before setup to ImageView like this:
Bitmap.createScaledBitmap(_yourImageBitmap, _size, _size, false);
where size is actual size of ImageView. You can reach size by measuring:
imageView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
and use next size imageView.getMeasuredWidth()
and imageView.getMeasuredHeight()
for scaling
.
I have tried with this android:largeHeap="true" but getting same error
– androidTag
Aug 27 '15 at 9:46
A further example of why this won't necessarily work (using private app storage): Placing a bitmap in res/drawable/ can give the same error but it won't happen every time. Placing same bitmap into res/drawable-xhdpi/ will no longer have the error. So as an answer, its not correct by itself.
– CmosBattery
Apr 22 '16 at 13:59
add a comment |
I have resolved this problem by resizing the image to lower size. I am using xamarin form. decreasing the size of the PNG image resolved the problem.
add a comment |
I got below error
"E/art: Throwing OutOfMemoryError "Failed to allocate a 47251468 byte
allocation with 16777120 free bytes and 23MB until OOM"
after adding android:largeHeap="true"
in AndroidManifest.xml then I rid of all the errors
<application
android:allowBackup="true"
android:icon="@mipmap/guruji"
android:label="@string/app_name"
android:supportsRtl="true"
android:largeHeap="true"
android:theme="@style/AppTheme">
2
Didn't work for my case
– Sami Eltamawy
Nov 27 '16 at 12:05
add a comment |
Soluton try this in your Manifest File and use Glide Library
compile 'com.github.bumptech.glide:glide:3.7.0'
**Use Glide Library and Override size to less size;**
if (!TextUtils.isEmpty(message.getPicture())) {
Glide.with(mContext).load(message.getPicture())
.thumbnail(0.5f)
.crossFade()
.transform(new CircleTransform(mContext))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(holder.imgProfile);
}
android:hardwareAccelerated="false"
android:largeHeap="true"
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
Use this library
compile 'com.github.bumptech.glide:glide:3.7.0'
Its Working Happy Coding
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Paint;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
public class CircleTransform extends BitmapTransformation {
public CircleTransform(Context context) {
super(context);
}
@Override
protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
return circleCrop(pool, toTransform);
}
private static Bitmap circleCrop(BitmapPool pool, Bitmap source) {
if (source == null) return null;
int size = Math.min(source.getWidth(), source.getHeight());
int x = (source.getWidth() - size) / 2;
int y = (source.getHeight() - size) / 2;
// TODO this could be acquired from the pool too
Bitmap squared = Bitmap.createBitmap(source, x, y, size, size);
Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888);
if (result == null) {
result = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
}
Canvas canvas = new Canvas(result);
Paint paint = new Paint();
paint.setShader(new BitmapShader(squared, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));
paint.setAntiAlias(true);
float r = size / 2f;
canvas.drawCircle(r, r, r, paint);
return result;
}
@Override
public String getId() {
return getClass().getName();
}
}
add a comment |
Issue : Failed to allocate a 37748748 byte allocation with 16777120
free bytes and 17MB until OOM
Solution :
1.open your manifest file
2. inside application tag just add below two lines
android:hardwareAccelerated="false"
android:largeHeap="true"
Example :
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:largeHeap="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
add a comment |
I had the problem too.
Same with most of others above.
The problem is caused by huge image.
Just resize some images,
and no need to change any code.
add a comment |
I'm a newbie in android developing but I hope my solution helps, it works on my condition perfectly. Im using Imageview and set it's background to "src" because im trying to make a frame animation. I got the same error but when I tried to code this it worked
int ImageID = this.Resources.GetIdentifier(questionPlay[index].Image.ToLower(), "anim", PackageName);
imgView.SetImageResource(ImageID);
AnimationDrawable animation = (AnimationDrawable)imgView.Drawable;
animation.Start();
animation.Dispose();
add a comment |
In some cases (e.g. operations in a loop) garbage collector is slower than your code. You can use a helper method from this answer to wait for garbage collector.
add a comment |
I ran into this problem when I didn't kill off my old activity when moving on to a new activity. I fixed it with finish();
Intent goToMain = new Intent(this,MainActivity.class);
startActivity(goToMain);
finish();
add a comment |
This worked for me: just move images from drawable folder to drawable-hdpi.
what the explanation of this? why this moving works ?
– Harun
Apr 19 '18 at 5:04
add a comment |
Bitmap image =((BitmapDrawable)imageView1.getDrawable()).getBitmap();
ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG,50/100,byteArrayOutputStream);
50/100 if one uses 100 then original resolution can stopped the Apps for out of memory.
if 50 or less than 100 this will be 50% or less than 100 resolution so this will prevent from out of memory problem
add a comment |
I have found that images in the 'drawable' folder will get converted to a much larger image on high def phones. For example, a 200k image will be resampled to a higher res, like 800k or 32000k. I had to discover this on my own and to date have not seen documentation for this heap memory trap. To prevent this I put everything in a drawable-nodpi folder (in addition to using 'options' in BitmapFactory based on the particular device heap). I can't afford to have the size of my app bloated with multiple drawable folders, particularly as the range of screen defs is so vast now. The tricky thing is studio now doesn't specifically indicate the 'drawable-nodpi' folder as such in the project view, it just shows a 'drawable' folder. If you're not careful, when you drop an image to this folder in studio, it won't actually get dropped into the drawable-nodpi:
Careful here 'backgroundtest' did not actually go to drawable-nodpi and will
be resampled higher, such as 4x or 16x of the original dimensions for high def screens.
Be sure to click down to the nodpi folder in the dialogue, as the project view won't show you all drawable folders separately like it used to, so it won't be immediately apparent that it went to wrong one. Studio recreated the vanilla 'drawable' at some point for me after I had deleted it long ago:
add a comment |
You have to change the size of object in drawable. It's too big for android to display. e.g. If you are setting image try image with less pixels. It works for me.
Thanks. :)
add a comment |
Your app is crashing because your image size (in MB Or KB) is too large so it is not allocating space for that. So before pasting your image in drawable just reduce the size.
OR
You can add Following in application tag at Manifest.xml
android:hardwareAccelerated="false"
android:largeHeap="true"
android:allowBackup="true"
After Adding this App will not Crash.
- always use less sizes images in App.
- If You adding large sizes of images in app , you should add above syntex, but App size will increase.
add a comment |
My problem solved after adding
dexOptions {
incremental true
javaMaxHeapSize "4g"
preDexLibraries true
dexInProcess = true
}
in Build.Gradle file
This just makes your app really bloated in memory usage
– cricket_007
Oct 27 '18 at 18:14
add a comment |
If uploading an image, try reducing the image quality, which is the second parameter of the Bitmap. This was the solution in my case. Previously it was 90, then I tried with 60 (as it is in the code below now).
Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
finalBitmap.compress(Bitmap.CompressFormat.JPEG,60,baos);
byte b = baos.toByteArray();
add a comment |
Try the simplest one. Maybe Your app is crashing because your image size (in MB) is too large so it is not allocating space for that. So before pasting your image in drawable just reduce the size by any viewer software or if you are taking image from gallery at the run time than before saving it compress your bitmap.
It worked for me. definitely for u will be.
add a comment |
stream = activity.getContentResolver().openInputStream(uri);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.RGB_565;
bitmap = BitmapFactory.decodeStream(stream, null, options);
int Height = bitmap.getHeight();
int Width = bitmap.getWidth();
enter code here
int newHeight = 1000;
float scaleFactor = ((float) newHeight) / Height;
float newWidth = Width * scaleFactor;
float scaleWidth = scaleFactor;
float scaleHeight = scaleFactor;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
resizedBitmap= Bitmap.createBitmap(bitmap, 0, 0,Width, Height, matrix, true);
bitmap.recycle();
Then in Appliaction tag, add largeheapsize="true
add a comment |
Last but not the least....
Try Method One:
Simple Add these lines of code in the gradle file
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
Example:
android {
compileSdkVersion XX
buildToolsVersion "28.X.X"
defaultConfig {
applicationId "com.example.xxxxx"
minSdkVersion 14
targetSdkVersion 19
}
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
}
*******************************************************************
Method Two:
Add these two lines of code in manifest file...
android:hardwareAccelerated="false"
android:largeHeap="true"
Example:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:hardwareAccelerated="false"
android:largeHeap="true"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
It will Work for sure any of these cases.....
add a comment |
Use an image loading library like Picasso or Glide. Using these libraries will prevent crashes in the future.
add a comment |
protected by Community♦ Aug 26 '17 at 0:17
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?
26 Answers
26
active
oldest
votes
26 Answers
26
active
oldest
votes
active
oldest
votes
active
oldest
votes
OutOfMemoryError is the most common problem occured in android while especially dealing with bitmaps. This error is thrown by the Java Virtual Machine (JVM) when an object cannot be allocated due to lack of memory space and also, the garbage collector cannot free some space.
As mentioned by Aleksey, you can add below entities in your manifest file android:hardwareAccelerated="false"
, android:largeHeap="true"
it will work for some environment's.
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
you should definately read some of Androids Developer concept's, specially here:Displaying Bitmaps Efficiently
Read all 5 topics and rewrite your code again. If it still doesn't work we will be happy to see what you've done wrong with the tutorial material.
Here some of possible answers for these type of errors in SOF
Android: BitmapFactory.decodeStream() out of memory with a 400KB file with 2MB free heap
How to solve java.lang.OutOfMemoryError trouble in Android
Android : java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
Solution for OutOfMemoryError: bitmap size exceeds VM budget
Edit: From the comments of @cjnash
For anyone that still had crashes after they added this line, try sticking your image into your res/drawable-xhdpi/ folder instead of your res/drawable/ and it might resolve your issue.
1
Could you please post how you eventually solved the issue? Because i have the same problem... Actually you can add in your manifest this lines android:hardwareAccelerated="false" , android:largeHeap="true" it is working for some situations, but be aware the that another part of code can be arguing with this...
– Aleksey Timoshchenko
Apr 20 '16 at 6:37
3
app navigation is becoming very slow after adding this.
– Uma Achanta
Dec 30 '16 at 7:47
4
android:hardwareAccelerated="false" freezing your app
– Rahim Rahimov
Apr 15 '17 at 15:00
1
For anyone that still had crashes after they added this line, try sticking your image into your res/drawable-xhdpi/ folder instead of your res/drawable/ and it might resolve your issue.
– cjnash
Aug 1 '17 at 15:45
2
why would you suggest android:hardwareAccelerated="false ? what is the benefit of it?
– batmaci
Dec 13 '17 at 16:04
|
show 7 more comments
OutOfMemoryError is the most common problem occured in android while especially dealing with bitmaps. This error is thrown by the Java Virtual Machine (JVM) when an object cannot be allocated due to lack of memory space and also, the garbage collector cannot free some space.
As mentioned by Aleksey, you can add below entities in your manifest file android:hardwareAccelerated="false"
, android:largeHeap="true"
it will work for some environment's.
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
you should definately read some of Androids Developer concept's, specially here:Displaying Bitmaps Efficiently
Read all 5 topics and rewrite your code again. If it still doesn't work we will be happy to see what you've done wrong with the tutorial material.
Here some of possible answers for these type of errors in SOF
Android: BitmapFactory.decodeStream() out of memory with a 400KB file with 2MB free heap
How to solve java.lang.OutOfMemoryError trouble in Android
Android : java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
Solution for OutOfMemoryError: bitmap size exceeds VM budget
Edit: From the comments of @cjnash
For anyone that still had crashes after they added this line, try sticking your image into your res/drawable-xhdpi/ folder instead of your res/drawable/ and it might resolve your issue.
1
Could you please post how you eventually solved the issue? Because i have the same problem... Actually you can add in your manifest this lines android:hardwareAccelerated="false" , android:largeHeap="true" it is working for some situations, but be aware the that another part of code can be arguing with this...
– Aleksey Timoshchenko
Apr 20 '16 at 6:37
3
app navigation is becoming very slow after adding this.
– Uma Achanta
Dec 30 '16 at 7:47
4
android:hardwareAccelerated="false" freezing your app
– Rahim Rahimov
Apr 15 '17 at 15:00
1
For anyone that still had crashes after they added this line, try sticking your image into your res/drawable-xhdpi/ folder instead of your res/drawable/ and it might resolve your issue.
– cjnash
Aug 1 '17 at 15:45
2
why would you suggest android:hardwareAccelerated="false ? what is the benefit of it?
– batmaci
Dec 13 '17 at 16:04
|
show 7 more comments
OutOfMemoryError is the most common problem occured in android while especially dealing with bitmaps. This error is thrown by the Java Virtual Machine (JVM) when an object cannot be allocated due to lack of memory space and also, the garbage collector cannot free some space.
As mentioned by Aleksey, you can add below entities in your manifest file android:hardwareAccelerated="false"
, android:largeHeap="true"
it will work for some environment's.
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
you should definately read some of Androids Developer concept's, specially here:Displaying Bitmaps Efficiently
Read all 5 topics and rewrite your code again. If it still doesn't work we will be happy to see what you've done wrong with the tutorial material.
Here some of possible answers for these type of errors in SOF
Android: BitmapFactory.decodeStream() out of memory with a 400KB file with 2MB free heap
How to solve java.lang.OutOfMemoryError trouble in Android
Android : java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
Solution for OutOfMemoryError: bitmap size exceeds VM budget
Edit: From the comments of @cjnash
For anyone that still had crashes after they added this line, try sticking your image into your res/drawable-xhdpi/ folder instead of your res/drawable/ and it might resolve your issue.
OutOfMemoryError is the most common problem occured in android while especially dealing with bitmaps. This error is thrown by the Java Virtual Machine (JVM) when an object cannot be allocated due to lack of memory space and also, the garbage collector cannot free some space.
As mentioned by Aleksey, you can add below entities in your manifest file android:hardwareAccelerated="false"
, android:largeHeap="true"
it will work for some environment's.
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
you should definately read some of Androids Developer concept's, specially here:Displaying Bitmaps Efficiently
Read all 5 topics and rewrite your code again. If it still doesn't work we will be happy to see what you've done wrong with the tutorial material.
Here some of possible answers for these type of errors in SOF
Android: BitmapFactory.decodeStream() out of memory with a 400KB file with 2MB free heap
How to solve java.lang.OutOfMemoryError trouble in Android
Android : java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
Solution for OutOfMemoryError: bitmap size exceeds VM budget
Edit: From the comments of @cjnash
For anyone that still had crashes after they added this line, try sticking your image into your res/drawable-xhdpi/ folder instead of your res/drawable/ and it might resolve your issue.
edited Sep 20 '17 at 3:57
answered Aug 27 '15 at 9:02
King of MassesKing of Masses
12.6k44766
12.6k44766
1
Could you please post how you eventually solved the issue? Because i have the same problem... Actually you can add in your manifest this lines android:hardwareAccelerated="false" , android:largeHeap="true" it is working for some situations, but be aware the that another part of code can be arguing with this...
– Aleksey Timoshchenko
Apr 20 '16 at 6:37
3
app navigation is becoming very slow after adding this.
– Uma Achanta
Dec 30 '16 at 7:47
4
android:hardwareAccelerated="false" freezing your app
– Rahim Rahimov
Apr 15 '17 at 15:00
1
For anyone that still had crashes after they added this line, try sticking your image into your res/drawable-xhdpi/ folder instead of your res/drawable/ and it might resolve your issue.
– cjnash
Aug 1 '17 at 15:45
2
why would you suggest android:hardwareAccelerated="false ? what is the benefit of it?
– batmaci
Dec 13 '17 at 16:04
|
show 7 more comments
1
Could you please post how you eventually solved the issue? Because i have the same problem... Actually you can add in your manifest this lines android:hardwareAccelerated="false" , android:largeHeap="true" it is working for some situations, but be aware the that another part of code can be arguing with this...
– Aleksey Timoshchenko
Apr 20 '16 at 6:37
3
app navigation is becoming very slow after adding this.
– Uma Achanta
Dec 30 '16 at 7:47
4
android:hardwareAccelerated="false" freezing your app
– Rahim Rahimov
Apr 15 '17 at 15:00
1
For anyone that still had crashes after they added this line, try sticking your image into your res/drawable-xhdpi/ folder instead of your res/drawable/ and it might resolve your issue.
– cjnash
Aug 1 '17 at 15:45
2
why would you suggest android:hardwareAccelerated="false ? what is the benefit of it?
– batmaci
Dec 13 '17 at 16:04
1
1
Could you please post how you eventually solved the issue? Because i have the same problem... Actually you can add in your manifest this lines android:hardwareAccelerated="false" , android:largeHeap="true" it is working for some situations, but be aware the that another part of code can be arguing with this...
– Aleksey Timoshchenko
Apr 20 '16 at 6:37
Could you please post how you eventually solved the issue? Because i have the same problem... Actually you can add in your manifest this lines android:hardwareAccelerated="false" , android:largeHeap="true" it is working for some situations, but be aware the that another part of code can be arguing with this...
– Aleksey Timoshchenko
Apr 20 '16 at 6:37
3
3
app navigation is becoming very slow after adding this.
– Uma Achanta
Dec 30 '16 at 7:47
app navigation is becoming very slow after adding this.
– Uma Achanta
Dec 30 '16 at 7:47
4
4
android:hardwareAccelerated="false" freezing your app
– Rahim Rahimov
Apr 15 '17 at 15:00
android:hardwareAccelerated="false" freezing your app
– Rahim Rahimov
Apr 15 '17 at 15:00
1
1
For anyone that still had crashes after they added this line, try sticking your image into your res/drawable-xhdpi/ folder instead of your res/drawable/ and it might resolve your issue.
– cjnash
Aug 1 '17 at 15:45
For anyone that still had crashes after they added this line, try sticking your image into your res/drawable-xhdpi/ folder instead of your res/drawable/ and it might resolve your issue.
– cjnash
Aug 1 '17 at 15:45
2
2
why would you suggest android:hardwareAccelerated="false ? what is the benefit of it?
– batmaci
Dec 13 '17 at 16:04
why would you suggest android:hardwareAccelerated="false ? what is the benefit of it?
– batmaci
Dec 13 '17 at 16:04
|
show 7 more comments
have you tried adding this to your manifest under applications? android:largeHeap="true"
?
like this
<application
android:name=".ParaseApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:largeHeap="true" >
10
I have tried with this android:largeHeap="true" but getting same error
– androidTag
Aug 27 '15 at 9:42
1
try compressing your image before you can use this link to do so tinyjpg.com
– TSG
Aug 27 '15 at 11:22
1
you can also compress png with this site
– TSG
Aug 27 '15 at 11:23
add a comment |
have you tried adding this to your manifest under applications? android:largeHeap="true"
?
like this
<application
android:name=".ParaseApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:largeHeap="true" >
10
I have tried with this android:largeHeap="true" but getting same error
– androidTag
Aug 27 '15 at 9:42
1
try compressing your image before you can use this link to do so tinyjpg.com
– TSG
Aug 27 '15 at 11:22
1
you can also compress png with this site
– TSG
Aug 27 '15 at 11:23
add a comment |
have you tried adding this to your manifest under applications? android:largeHeap="true"
?
like this
<application
android:name=".ParaseApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:largeHeap="true" >
have you tried adding this to your manifest under applications? android:largeHeap="true"
?
like this
<application
android:name=".ParaseApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:largeHeap="true" >
edited Nov 19 '16 at 6:47
V-rund Puro-hit
4,04682046
4,04682046
answered Aug 27 '15 at 9:02
TSGTSG
78148
78148
10
I have tried with this android:largeHeap="true" but getting same error
– androidTag
Aug 27 '15 at 9:42
1
try compressing your image before you can use this link to do so tinyjpg.com
– TSG
Aug 27 '15 at 11:22
1
you can also compress png with this site
– TSG
Aug 27 '15 at 11:23
add a comment |
10
I have tried with this android:largeHeap="true" but getting same error
– androidTag
Aug 27 '15 at 9:42
1
try compressing your image before you can use this link to do so tinyjpg.com
– TSG
Aug 27 '15 at 11:22
1
you can also compress png with this site
– TSG
Aug 27 '15 at 11:23
10
10
I have tried with this android:largeHeap="true" but getting same error
– androidTag
Aug 27 '15 at 9:42
I have tried with this android:largeHeap="true" but getting same error
– androidTag
Aug 27 '15 at 9:42
1
1
try compressing your image before you can use this link to do so tinyjpg.com
– TSG
Aug 27 '15 at 11:22
try compressing your image before you can use this link to do so tinyjpg.com
– TSG
Aug 27 '15 at 11:22
1
1
you can also compress png with this site
– TSG
Aug 27 '15 at 11:23
you can also compress png with this site
– TSG
Aug 27 '15 at 11:23
add a comment |
Actually you can add in your manifest these lines android:hardwareAccelerated="false"
, android:largeHeap="true"
it is working for some situations, but be aware that the other part of code can be arguing with this.
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
2
didn't work, it crashed with the same error, when used Bitmap.createBitmap
– NarendraJi
Sep 14 '16 at 7:51
@King sorry( i also spent some time in order to solve this issue, and it is work for me. But it is just one of the way... There are a lot of different approach
– Aleksey Timoshchenko
Sep 28 '16 at 8:19
@MrNarendra how didi you solve it then?
– Shruti
Jul 19 '17 at 5:27
What is the purpose of android:hardwareAccelerated="false"?
– IgorGanapolsky
Oct 13 '17 at 15:05
@IgorGanapolsky From official doc says.. see this link
– Shylendra Madda
Oct 23 '17 at 5:40
add a comment |
Actually you can add in your manifest these lines android:hardwareAccelerated="false"
, android:largeHeap="true"
it is working for some situations, but be aware that the other part of code can be arguing with this.
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
2
didn't work, it crashed with the same error, when used Bitmap.createBitmap
– NarendraJi
Sep 14 '16 at 7:51
@King sorry( i also spent some time in order to solve this issue, and it is work for me. But it is just one of the way... There are a lot of different approach
– Aleksey Timoshchenko
Sep 28 '16 at 8:19
@MrNarendra how didi you solve it then?
– Shruti
Jul 19 '17 at 5:27
What is the purpose of android:hardwareAccelerated="false"?
– IgorGanapolsky
Oct 13 '17 at 15:05
@IgorGanapolsky From official doc says.. see this link
– Shylendra Madda
Oct 23 '17 at 5:40
add a comment |
Actually you can add in your manifest these lines android:hardwareAccelerated="false"
, android:largeHeap="true"
it is working for some situations, but be aware that the other part of code can be arguing with this.
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
Actually you can add in your manifest these lines android:hardwareAccelerated="false"
, android:largeHeap="true"
it is working for some situations, but be aware that the other part of code can be arguing with this.
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
edited Oct 3 '16 at 5:49
onexf
1,71711530
1,71711530
answered Apr 20 '16 at 6:38
Aleksey TimoshchenkoAleksey Timoshchenko
1,2231837
1,2231837
2
didn't work, it crashed with the same error, when used Bitmap.createBitmap
– NarendraJi
Sep 14 '16 at 7:51
@King sorry( i also spent some time in order to solve this issue, and it is work for me. But it is just one of the way... There are a lot of different approach
– Aleksey Timoshchenko
Sep 28 '16 at 8:19
@MrNarendra how didi you solve it then?
– Shruti
Jul 19 '17 at 5:27
What is the purpose of android:hardwareAccelerated="false"?
– IgorGanapolsky
Oct 13 '17 at 15:05
@IgorGanapolsky From official doc says.. see this link
– Shylendra Madda
Oct 23 '17 at 5:40
add a comment |
2
didn't work, it crashed with the same error, when used Bitmap.createBitmap
– NarendraJi
Sep 14 '16 at 7:51
@King sorry( i also spent some time in order to solve this issue, and it is work for me. But it is just one of the way... There are a lot of different approach
– Aleksey Timoshchenko
Sep 28 '16 at 8:19
@MrNarendra how didi you solve it then?
– Shruti
Jul 19 '17 at 5:27
What is the purpose of android:hardwareAccelerated="false"?
– IgorGanapolsky
Oct 13 '17 at 15:05
@IgorGanapolsky From official doc says.. see this link
– Shylendra Madda
Oct 23 '17 at 5:40
2
2
didn't work, it crashed with the same error, when used Bitmap.createBitmap
– NarendraJi
Sep 14 '16 at 7:51
didn't work, it crashed with the same error, when used Bitmap.createBitmap
– NarendraJi
Sep 14 '16 at 7:51
@King sorry( i also spent some time in order to solve this issue, and it is work for me. But it is just one of the way... There are a lot of different approach
– Aleksey Timoshchenko
Sep 28 '16 at 8:19
@King sorry( i also spent some time in order to solve this issue, and it is work for me. But it is just one of the way... There are a lot of different approach
– Aleksey Timoshchenko
Sep 28 '16 at 8:19
@MrNarendra how didi you solve it then?
– Shruti
Jul 19 '17 at 5:27
@MrNarendra how didi you solve it then?
– Shruti
Jul 19 '17 at 5:27
What is the purpose of android:hardwareAccelerated="false"?
– IgorGanapolsky
Oct 13 '17 at 15:05
What is the purpose of android:hardwareAccelerated="false"?
– IgorGanapolsky
Oct 13 '17 at 15:05
@IgorGanapolsky From official doc says.. see this link
– Shylendra Madda
Oct 23 '17 at 5:40
@IgorGanapolsky From official doc says.. see this link
– Shylendra Madda
Oct 23 '17 at 5:40
add a comment |
For me, the problem was that my .png file was being de-compressed to be a really huge bitmap in memory, because the image had very large dimensions (even though the file size was tiny).
So the fix was to simply resize the image :)
1
this is the correct solution, because I firstly tried above solutions, but after applyingandroid:hardwareAccelerated="false"
, some animations like layout shadow were not working. But after resizing all the problems were solved thank you! +1 for this hint!
– Kaushal28
May 29 '17 at 5:29
1
this fixed my problem. Thank you @petrus
– Hùng Nguyễn
Sep 10 '17 at 4:12
add a comment |
For me, the problem was that my .png file was being de-compressed to be a really huge bitmap in memory, because the image had very large dimensions (even though the file size was tiny).
So the fix was to simply resize the image :)
1
this is the correct solution, because I firstly tried above solutions, but after applyingandroid:hardwareAccelerated="false"
, some animations like layout shadow were not working. But after resizing all the problems were solved thank you! +1 for this hint!
– Kaushal28
May 29 '17 at 5:29
1
this fixed my problem. Thank you @petrus
– Hùng Nguyễn
Sep 10 '17 at 4:12
add a comment |
For me, the problem was that my .png file was being de-compressed to be a really huge bitmap in memory, because the image had very large dimensions (even though the file size was tiny).
So the fix was to simply resize the image :)
For me, the problem was that my .png file was being de-compressed to be a really huge bitmap in memory, because the image had very large dimensions (even though the file size was tiny).
So the fix was to simply resize the image :)
answered Feb 6 '16 at 14:19
petrus-jvrensburgpetrus-jvrensburg
637714
637714
1
this is the correct solution, because I firstly tried above solutions, but after applyingandroid:hardwareAccelerated="false"
, some animations like layout shadow were not working. But after resizing all the problems were solved thank you! +1 for this hint!
– Kaushal28
May 29 '17 at 5:29
1
this fixed my problem. Thank you @petrus
– Hùng Nguyễn
Sep 10 '17 at 4:12
add a comment |
1
this is the correct solution, because I firstly tried above solutions, but after applyingandroid:hardwareAccelerated="false"
, some animations like layout shadow were not working. But after resizing all the problems were solved thank you! +1 for this hint!
– Kaushal28
May 29 '17 at 5:29
1
this fixed my problem. Thank you @petrus
– Hùng Nguyễn
Sep 10 '17 at 4:12
1
1
this is the correct solution, because I firstly tried above solutions, but after applying
android:hardwareAccelerated="false"
, some animations like layout shadow were not working. But after resizing all the problems were solved thank you! +1 for this hint!– Kaushal28
May 29 '17 at 5:29
this is the correct solution, because I firstly tried above solutions, but after applying
android:hardwareAccelerated="false"
, some animations like layout shadow were not working. But after resizing all the problems were solved thank you! +1 for this hint!– Kaushal28
May 29 '17 at 5:29
1
1
this fixed my problem. Thank you @petrus
– Hùng Nguyễn
Sep 10 '17 at 4:12
this fixed my problem. Thank you @petrus
– Hùng Nguyễn
Sep 10 '17 at 4:12
add a comment |
This should work
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
mBitmapInsurance = BitmapFactory.decodeFile(mCurrentPhotoPath,options);
This answer is solved my problem.
– Thirumalvalavan
Jan 29 '18 at 13:13
add a comment |
This should work
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
mBitmapInsurance = BitmapFactory.decodeFile(mCurrentPhotoPath,options);
This answer is solved my problem.
– Thirumalvalavan
Jan 29 '18 at 13:13
add a comment |
This should work
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
mBitmapInsurance = BitmapFactory.decodeFile(mCurrentPhotoPath,options);
This should work
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
mBitmapInsurance = BitmapFactory.decodeFile(mCurrentPhotoPath,options);
answered Jul 25 '16 at 8:38
Akshay komarlaAkshay komarla
466815
466815
This answer is solved my problem.
– Thirumalvalavan
Jan 29 '18 at 13:13
add a comment |
This answer is solved my problem.
– Thirumalvalavan
Jan 29 '18 at 13:13
This answer is solved my problem.
– Thirumalvalavan
Jan 29 '18 at 13:13
This answer is solved my problem.
– Thirumalvalavan
Jan 29 '18 at 13:13
add a comment |
Use Glide Library and Override size to less size;
Glide.with(mContext).load(imgID).asBitmap().override(1080, 600).into(mImageView);
add a comment |
Use Glide Library and Override size to less size;
Glide.with(mContext).load(imgID).asBitmap().override(1080, 600).into(mImageView);
add a comment |
Use Glide Library and Override size to less size;
Glide.with(mContext).load(imgID).asBitmap().override(1080, 600).into(mImageView);
Use Glide Library and Override size to less size;
Glide.with(mContext).load(imgID).asBitmap().override(1080, 600).into(mImageView);
edited Jan 20 '17 at 20:16
Vinoth Vino
3,20832739
3,20832739
answered Feb 16 '16 at 8:16
Mahdi AzadbarMahdi Azadbar
603718
603718
add a comment |
add a comment |
Resize your image before setup to ImageView like this:
Bitmap.createScaledBitmap(_yourImageBitmap, _size, _size, false);
where size is actual size of ImageView. You can reach size by measuring:
imageView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
and use next size imageView.getMeasuredWidth()
and imageView.getMeasuredHeight()
for scaling
.
I have tried with this android:largeHeap="true" but getting same error
– androidTag
Aug 27 '15 at 9:46
A further example of why this won't necessarily work (using private app storage): Placing a bitmap in res/drawable/ can give the same error but it won't happen every time. Placing same bitmap into res/drawable-xhdpi/ will no longer have the error. So as an answer, its not correct by itself.
– CmosBattery
Apr 22 '16 at 13:59
add a comment |
Resize your image before setup to ImageView like this:
Bitmap.createScaledBitmap(_yourImageBitmap, _size, _size, false);
where size is actual size of ImageView. You can reach size by measuring:
imageView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
and use next size imageView.getMeasuredWidth()
and imageView.getMeasuredHeight()
for scaling
.
I have tried with this android:largeHeap="true" but getting same error
– androidTag
Aug 27 '15 at 9:46
A further example of why this won't necessarily work (using private app storage): Placing a bitmap in res/drawable/ can give the same error but it won't happen every time. Placing same bitmap into res/drawable-xhdpi/ will no longer have the error. So as an answer, its not correct by itself.
– CmosBattery
Apr 22 '16 at 13:59
add a comment |
Resize your image before setup to ImageView like this:
Bitmap.createScaledBitmap(_yourImageBitmap, _size, _size, false);
where size is actual size of ImageView. You can reach size by measuring:
imageView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
and use next size imageView.getMeasuredWidth()
and imageView.getMeasuredHeight()
for scaling
.
Resize your image before setup to ImageView like this:
Bitmap.createScaledBitmap(_yourImageBitmap, _size, _size, false);
where size is actual size of ImageView. You can reach size by measuring:
imageView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
and use next size imageView.getMeasuredWidth()
and imageView.getMeasuredHeight()
for scaling
.
edited Feb 8 '17 at 18:37
Vinoth Vino
3,20832739
3,20832739
answered Aug 27 '15 at 9:13
Vladimir EremeevVladimir Eremeev
1247
1247
I have tried with this android:largeHeap="true" but getting same error
– androidTag
Aug 27 '15 at 9:46
A further example of why this won't necessarily work (using private app storage): Placing a bitmap in res/drawable/ can give the same error but it won't happen every time. Placing same bitmap into res/drawable-xhdpi/ will no longer have the error. So as an answer, its not correct by itself.
– CmosBattery
Apr 22 '16 at 13:59
add a comment |
I have tried with this android:largeHeap="true" but getting same error
– androidTag
Aug 27 '15 at 9:46
A further example of why this won't necessarily work (using private app storage): Placing a bitmap in res/drawable/ can give the same error but it won't happen every time. Placing same bitmap into res/drawable-xhdpi/ will no longer have the error. So as an answer, its not correct by itself.
– CmosBattery
Apr 22 '16 at 13:59
I have tried with this android:largeHeap="true" but getting same error
– androidTag
Aug 27 '15 at 9:46
I have tried with this android:largeHeap="true" but getting same error
– androidTag
Aug 27 '15 at 9:46
A further example of why this won't necessarily work (using private app storage): Placing a bitmap in res/drawable/ can give the same error but it won't happen every time. Placing same bitmap into res/drawable-xhdpi/ will no longer have the error. So as an answer, its not correct by itself.
– CmosBattery
Apr 22 '16 at 13:59
A further example of why this won't necessarily work (using private app storage): Placing a bitmap in res/drawable/ can give the same error but it won't happen every time. Placing same bitmap into res/drawable-xhdpi/ will no longer have the error. So as an answer, its not correct by itself.
– CmosBattery
Apr 22 '16 at 13:59
add a comment |
I have resolved this problem by resizing the image to lower size. I am using xamarin form. decreasing the size of the PNG image resolved the problem.
add a comment |
I have resolved this problem by resizing the image to lower size. I am using xamarin form. decreasing the size of the PNG image resolved the problem.
add a comment |
I have resolved this problem by resizing the image to lower size. I am using xamarin form. decreasing the size of the PNG image resolved the problem.
I have resolved this problem by resizing the image to lower size. I am using xamarin form. decreasing the size of the PNG image resolved the problem.
answered May 2 '16 at 20:41
maxspanmaxspan
4,49243762
4,49243762
add a comment |
add a comment |
I got below error
"E/art: Throwing OutOfMemoryError "Failed to allocate a 47251468 byte
allocation with 16777120 free bytes and 23MB until OOM"
after adding android:largeHeap="true"
in AndroidManifest.xml then I rid of all the errors
<application
android:allowBackup="true"
android:icon="@mipmap/guruji"
android:label="@string/app_name"
android:supportsRtl="true"
android:largeHeap="true"
android:theme="@style/AppTheme">
2
Didn't work for my case
– Sami Eltamawy
Nov 27 '16 at 12:05
add a comment |
I got below error
"E/art: Throwing OutOfMemoryError "Failed to allocate a 47251468 byte
allocation with 16777120 free bytes and 23MB until OOM"
after adding android:largeHeap="true"
in AndroidManifest.xml then I rid of all the errors
<application
android:allowBackup="true"
android:icon="@mipmap/guruji"
android:label="@string/app_name"
android:supportsRtl="true"
android:largeHeap="true"
android:theme="@style/AppTheme">
2
Didn't work for my case
– Sami Eltamawy
Nov 27 '16 at 12:05
add a comment |
I got below error
"E/art: Throwing OutOfMemoryError "Failed to allocate a 47251468 byte
allocation with 16777120 free bytes and 23MB until OOM"
after adding android:largeHeap="true"
in AndroidManifest.xml then I rid of all the errors
<application
android:allowBackup="true"
android:icon="@mipmap/guruji"
android:label="@string/app_name"
android:supportsRtl="true"
android:largeHeap="true"
android:theme="@style/AppTheme">
I got below error
"E/art: Throwing OutOfMemoryError "Failed to allocate a 47251468 byte
allocation with 16777120 free bytes and 23MB until OOM"
after adding android:largeHeap="true"
in AndroidManifest.xml then I rid of all the errors
<application
android:allowBackup="true"
android:icon="@mipmap/guruji"
android:label="@string/app_name"
android:supportsRtl="true"
android:largeHeap="true"
android:theme="@style/AppTheme">
edited Feb 6 '17 at 21:34
Vinoth Vino
3,20832739
3,20832739
answered Aug 15 '16 at 3:29
saigopisaigopi
3,7812523
3,7812523
2
Didn't work for my case
– Sami Eltamawy
Nov 27 '16 at 12:05
add a comment |
2
Didn't work for my case
– Sami Eltamawy
Nov 27 '16 at 12:05
2
2
Didn't work for my case
– Sami Eltamawy
Nov 27 '16 at 12:05
Didn't work for my case
– Sami Eltamawy
Nov 27 '16 at 12:05
add a comment |
Soluton try this in your Manifest File and use Glide Library
compile 'com.github.bumptech.glide:glide:3.7.0'
**Use Glide Library and Override size to less size;**
if (!TextUtils.isEmpty(message.getPicture())) {
Glide.with(mContext).load(message.getPicture())
.thumbnail(0.5f)
.crossFade()
.transform(new CircleTransform(mContext))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(holder.imgProfile);
}
android:hardwareAccelerated="false"
android:largeHeap="true"
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
Use this library
compile 'com.github.bumptech.glide:glide:3.7.0'
Its Working Happy Coding
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Paint;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
public class CircleTransform extends BitmapTransformation {
public CircleTransform(Context context) {
super(context);
}
@Override
protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
return circleCrop(pool, toTransform);
}
private static Bitmap circleCrop(BitmapPool pool, Bitmap source) {
if (source == null) return null;
int size = Math.min(source.getWidth(), source.getHeight());
int x = (source.getWidth() - size) / 2;
int y = (source.getHeight() - size) / 2;
// TODO this could be acquired from the pool too
Bitmap squared = Bitmap.createBitmap(source, x, y, size, size);
Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888);
if (result == null) {
result = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
}
Canvas canvas = new Canvas(result);
Paint paint = new Paint();
paint.setShader(new BitmapShader(squared, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));
paint.setAntiAlias(true);
float r = size / 2f;
canvas.drawCircle(r, r, r, paint);
return result;
}
@Override
public String getId() {
return getClass().getName();
}
}
add a comment |
Soluton try this in your Manifest File and use Glide Library
compile 'com.github.bumptech.glide:glide:3.7.0'
**Use Glide Library and Override size to less size;**
if (!TextUtils.isEmpty(message.getPicture())) {
Glide.with(mContext).load(message.getPicture())
.thumbnail(0.5f)
.crossFade()
.transform(new CircleTransform(mContext))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(holder.imgProfile);
}
android:hardwareAccelerated="false"
android:largeHeap="true"
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
Use this library
compile 'com.github.bumptech.glide:glide:3.7.0'
Its Working Happy Coding
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Paint;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
public class CircleTransform extends BitmapTransformation {
public CircleTransform(Context context) {
super(context);
}
@Override
protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
return circleCrop(pool, toTransform);
}
private static Bitmap circleCrop(BitmapPool pool, Bitmap source) {
if (source == null) return null;
int size = Math.min(source.getWidth(), source.getHeight());
int x = (source.getWidth() - size) / 2;
int y = (source.getHeight() - size) / 2;
// TODO this could be acquired from the pool too
Bitmap squared = Bitmap.createBitmap(source, x, y, size, size);
Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888);
if (result == null) {
result = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
}
Canvas canvas = new Canvas(result);
Paint paint = new Paint();
paint.setShader(new BitmapShader(squared, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));
paint.setAntiAlias(true);
float r = size / 2f;
canvas.drawCircle(r, r, r, paint);
return result;
}
@Override
public String getId() {
return getClass().getName();
}
}
add a comment |
Soluton try this in your Manifest File and use Glide Library
compile 'com.github.bumptech.glide:glide:3.7.0'
**Use Glide Library and Override size to less size;**
if (!TextUtils.isEmpty(message.getPicture())) {
Glide.with(mContext).load(message.getPicture())
.thumbnail(0.5f)
.crossFade()
.transform(new CircleTransform(mContext))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(holder.imgProfile);
}
android:hardwareAccelerated="false"
android:largeHeap="true"
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
Use this library
compile 'com.github.bumptech.glide:glide:3.7.0'
Its Working Happy Coding
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Paint;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
public class CircleTransform extends BitmapTransformation {
public CircleTransform(Context context) {
super(context);
}
@Override
protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
return circleCrop(pool, toTransform);
}
private static Bitmap circleCrop(BitmapPool pool, Bitmap source) {
if (source == null) return null;
int size = Math.min(source.getWidth(), source.getHeight());
int x = (source.getWidth() - size) / 2;
int y = (source.getHeight() - size) / 2;
// TODO this could be acquired from the pool too
Bitmap squared = Bitmap.createBitmap(source, x, y, size, size);
Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888);
if (result == null) {
result = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
}
Canvas canvas = new Canvas(result);
Paint paint = new Paint();
paint.setShader(new BitmapShader(squared, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));
paint.setAntiAlias(true);
float r = size / 2f;
canvas.drawCircle(r, r, r, paint);
return result;
}
@Override
public String getId() {
return getClass().getName();
}
}
Soluton try this in your Manifest File and use Glide Library
compile 'com.github.bumptech.glide:glide:3.7.0'
**Use Glide Library and Override size to less size;**
if (!TextUtils.isEmpty(message.getPicture())) {
Glide.with(mContext).load(message.getPicture())
.thumbnail(0.5f)
.crossFade()
.transform(new CircleTransform(mContext))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(holder.imgProfile);
}
android:hardwareAccelerated="false"
android:largeHeap="true"
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
Use this library
compile 'com.github.bumptech.glide:glide:3.7.0'
Its Working Happy Coding
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Paint;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
public class CircleTransform extends BitmapTransformation {
public CircleTransform(Context context) {
super(context);
}
@Override
protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
return circleCrop(pool, toTransform);
}
private static Bitmap circleCrop(BitmapPool pool, Bitmap source) {
if (source == null) return null;
int size = Math.min(source.getWidth(), source.getHeight());
int x = (source.getWidth() - size) / 2;
int y = (source.getHeight() - size) / 2;
// TODO this could be acquired from the pool too
Bitmap squared = Bitmap.createBitmap(source, x, y, size, size);
Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888);
if (result == null) {
result = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
}
Canvas canvas = new Canvas(result);
Paint paint = new Paint();
paint.setShader(new BitmapShader(squared, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));
paint.setAntiAlias(true);
float r = size / 2f;
canvas.drawCircle(r, r, r, paint);
return result;
}
@Override
public String getId() {
return getClass().getName();
}
}
edited Aug 15 '17 at 17:57
Shreyas Sanil
139111
139111
answered Jul 17 '17 at 11:01
Keshav GeraKeshav Gera
2,9091828
2,9091828
add a comment |
add a comment |
Issue : Failed to allocate a 37748748 byte allocation with 16777120
free bytes and 17MB until OOM
Solution :
1.open your manifest file
2. inside application tag just add below two lines
android:hardwareAccelerated="false"
android:largeHeap="true"
Example :
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:largeHeap="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
add a comment |
Issue : Failed to allocate a 37748748 byte allocation with 16777120
free bytes and 17MB until OOM
Solution :
1.open your manifest file
2. inside application tag just add below two lines
android:hardwareAccelerated="false"
android:largeHeap="true"
Example :
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:largeHeap="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
add a comment |
Issue : Failed to allocate a 37748748 byte allocation with 16777120
free bytes and 17MB until OOM
Solution :
1.open your manifest file
2. inside application tag just add below two lines
android:hardwareAccelerated="false"
android:largeHeap="true"
Example :
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:largeHeap="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
Issue : Failed to allocate a 37748748 byte allocation with 16777120
free bytes and 17MB until OOM
Solution :
1.open your manifest file
2. inside application tag just add below two lines
android:hardwareAccelerated="false"
android:largeHeap="true"
Example :
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:largeHeap="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
edited Nov 6 '17 at 11:28
King of Masses
12.6k44766
12.6k44766
answered Nov 6 '17 at 11:12
Kishore ReddyKishore Reddy
859810
859810
add a comment |
add a comment |
I had the problem too.
Same with most of others above.
The problem is caused by huge image.
Just resize some images,
and no need to change any code.
add a comment |
I had the problem too.
Same with most of others above.
The problem is caused by huge image.
Just resize some images,
and no need to change any code.
add a comment |
I had the problem too.
Same with most of others above.
The problem is caused by huge image.
Just resize some images,
and no need to change any code.
I had the problem too.
Same with most of others above.
The problem is caused by huge image.
Just resize some images,
and no need to change any code.
answered Mar 9 '17 at 2:26
Mike YanMike Yan
1,29011015
1,29011015
add a comment |
add a comment |
I'm a newbie in android developing but I hope my solution helps, it works on my condition perfectly. Im using Imageview and set it's background to "src" because im trying to make a frame animation. I got the same error but when I tried to code this it worked
int ImageID = this.Resources.GetIdentifier(questionPlay[index].Image.ToLower(), "anim", PackageName);
imgView.SetImageResource(ImageID);
AnimationDrawable animation = (AnimationDrawable)imgView.Drawable;
animation.Start();
animation.Dispose();
add a comment |
I'm a newbie in android developing but I hope my solution helps, it works on my condition perfectly. Im using Imageview and set it's background to "src" because im trying to make a frame animation. I got the same error but when I tried to code this it worked
int ImageID = this.Resources.GetIdentifier(questionPlay[index].Image.ToLower(), "anim", PackageName);
imgView.SetImageResource(ImageID);
AnimationDrawable animation = (AnimationDrawable)imgView.Drawable;
animation.Start();
animation.Dispose();
add a comment |
I'm a newbie in android developing but I hope my solution helps, it works on my condition perfectly. Im using Imageview and set it's background to "src" because im trying to make a frame animation. I got the same error but when I tried to code this it worked
int ImageID = this.Resources.GetIdentifier(questionPlay[index].Image.ToLower(), "anim", PackageName);
imgView.SetImageResource(ImageID);
AnimationDrawable animation = (AnimationDrawable)imgView.Drawable;
animation.Start();
animation.Dispose();
I'm a newbie in android developing but I hope my solution helps, it works on my condition perfectly. Im using Imageview and set it's background to "src" because im trying to make a frame animation. I got the same error but when I tried to code this it worked
int ImageID = this.Resources.GetIdentifier(questionPlay[index].Image.ToLower(), "anim", PackageName);
imgView.SetImageResource(ImageID);
AnimationDrawable animation = (AnimationDrawable)imgView.Drawable;
animation.Start();
animation.Dispose();
answered Feb 26 '17 at 8:24
DianeFloresDianeFlores
111
111
add a comment |
add a comment |
In some cases (e.g. operations in a loop) garbage collector is slower than your code. You can use a helper method from this answer to wait for garbage collector.
add a comment |
In some cases (e.g. operations in a loop) garbage collector is slower than your code. You can use a helper method from this answer to wait for garbage collector.
add a comment |
In some cases (e.g. operations in a loop) garbage collector is slower than your code. You can use a helper method from this answer to wait for garbage collector.
In some cases (e.g. operations in a loop) garbage collector is slower than your code. You can use a helper method from this answer to wait for garbage collector.
answered Jun 20 '17 at 6:06
ZonZon
5,85044455
5,85044455
add a comment |
add a comment |
I ran into this problem when I didn't kill off my old activity when moving on to a new activity. I fixed it with finish();
Intent goToMain = new Intent(this,MainActivity.class);
startActivity(goToMain);
finish();
add a comment |
I ran into this problem when I didn't kill off my old activity when moving on to a new activity. I fixed it with finish();
Intent goToMain = new Intent(this,MainActivity.class);
startActivity(goToMain);
finish();
add a comment |
I ran into this problem when I didn't kill off my old activity when moving on to a new activity. I fixed it with finish();
Intent goToMain = new Intent(this,MainActivity.class);
startActivity(goToMain);
finish();
I ran into this problem when I didn't kill off my old activity when moving on to a new activity. I fixed it with finish();
Intent goToMain = new Intent(this,MainActivity.class);
startActivity(goToMain);
finish();
answered Jul 3 '17 at 17:36
Jason HuJason Hu
212
212
add a comment |
add a comment |
This worked for me: just move images from drawable folder to drawable-hdpi.
what the explanation of this? why this moving works ?
– Harun
Apr 19 '18 at 5:04
add a comment |
This worked for me: just move images from drawable folder to drawable-hdpi.
what the explanation of this? why this moving works ?
– Harun
Apr 19 '18 at 5:04
add a comment |
This worked for me: just move images from drawable folder to drawable-hdpi.
This worked for me: just move images from drawable folder to drawable-hdpi.
answered Aug 14 '17 at 14:58
Hossein AminiHossein Amini
442519
442519
what the explanation of this? why this moving works ?
– Harun
Apr 19 '18 at 5:04
add a comment |
what the explanation of this? why this moving works ?
– Harun
Apr 19 '18 at 5:04
what the explanation of this? why this moving works ?
– Harun
Apr 19 '18 at 5:04
what the explanation of this? why this moving works ?
– Harun
Apr 19 '18 at 5:04
add a comment |
Bitmap image =((BitmapDrawable)imageView1.getDrawable()).getBitmap();
ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG,50/100,byteArrayOutputStream);
50/100 if one uses 100 then original resolution can stopped the Apps for out of memory.
if 50 or less than 100 this will be 50% or less than 100 resolution so this will prevent from out of memory problem
add a comment |
Bitmap image =((BitmapDrawable)imageView1.getDrawable()).getBitmap();
ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG,50/100,byteArrayOutputStream);
50/100 if one uses 100 then original resolution can stopped the Apps for out of memory.
if 50 or less than 100 this will be 50% or less than 100 resolution so this will prevent from out of memory problem
add a comment |
Bitmap image =((BitmapDrawable)imageView1.getDrawable()).getBitmap();
ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG,50/100,byteArrayOutputStream);
50/100 if one uses 100 then original resolution can stopped the Apps for out of memory.
if 50 or less than 100 this will be 50% or less than 100 resolution so this will prevent from out of memory problem
Bitmap image =((BitmapDrawable)imageView1.getDrawable()).getBitmap();
ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG,50/100,byteArrayOutputStream);
50/100 if one uses 100 then original resolution can stopped the Apps for out of memory.
if 50 or less than 100 this will be 50% or less than 100 resolution so this will prevent from out of memory problem
edited Nov 6 '17 at 11:29
King of Masses
12.6k44766
12.6k44766
answered Jun 7 '17 at 6:09
RAHINUR RAHMANRAHINUR RAHMAN
515
515
add a comment |
add a comment |
I have found that images in the 'drawable' folder will get converted to a much larger image on high def phones. For example, a 200k image will be resampled to a higher res, like 800k or 32000k. I had to discover this on my own and to date have not seen documentation for this heap memory trap. To prevent this I put everything in a drawable-nodpi folder (in addition to using 'options' in BitmapFactory based on the particular device heap). I can't afford to have the size of my app bloated with multiple drawable folders, particularly as the range of screen defs is so vast now. The tricky thing is studio now doesn't specifically indicate the 'drawable-nodpi' folder as such in the project view, it just shows a 'drawable' folder. If you're not careful, when you drop an image to this folder in studio, it won't actually get dropped into the drawable-nodpi:
Careful here 'backgroundtest' did not actually go to drawable-nodpi and will
be resampled higher, such as 4x or 16x of the original dimensions for high def screens.
Be sure to click down to the nodpi folder in the dialogue, as the project view won't show you all drawable folders separately like it used to, so it won't be immediately apparent that it went to wrong one. Studio recreated the vanilla 'drawable' at some point for me after I had deleted it long ago:
add a comment |
I have found that images in the 'drawable' folder will get converted to a much larger image on high def phones. For example, a 200k image will be resampled to a higher res, like 800k or 32000k. I had to discover this on my own and to date have not seen documentation for this heap memory trap. To prevent this I put everything in a drawable-nodpi folder (in addition to using 'options' in BitmapFactory based on the particular device heap). I can't afford to have the size of my app bloated with multiple drawable folders, particularly as the range of screen defs is so vast now. The tricky thing is studio now doesn't specifically indicate the 'drawable-nodpi' folder as such in the project view, it just shows a 'drawable' folder. If you're not careful, when you drop an image to this folder in studio, it won't actually get dropped into the drawable-nodpi:
Careful here 'backgroundtest' did not actually go to drawable-nodpi and will
be resampled higher, such as 4x or 16x of the original dimensions for high def screens.
Be sure to click down to the nodpi folder in the dialogue, as the project view won't show you all drawable folders separately like it used to, so it won't be immediately apparent that it went to wrong one. Studio recreated the vanilla 'drawable' at some point for me after I had deleted it long ago:
add a comment |
I have found that images in the 'drawable' folder will get converted to a much larger image on high def phones. For example, a 200k image will be resampled to a higher res, like 800k or 32000k. I had to discover this on my own and to date have not seen documentation for this heap memory trap. To prevent this I put everything in a drawable-nodpi folder (in addition to using 'options' in BitmapFactory based on the particular device heap). I can't afford to have the size of my app bloated with multiple drawable folders, particularly as the range of screen defs is so vast now. The tricky thing is studio now doesn't specifically indicate the 'drawable-nodpi' folder as such in the project view, it just shows a 'drawable' folder. If you're not careful, when you drop an image to this folder in studio, it won't actually get dropped into the drawable-nodpi:
Careful here 'backgroundtest' did not actually go to drawable-nodpi and will
be resampled higher, such as 4x or 16x of the original dimensions for high def screens.
Be sure to click down to the nodpi folder in the dialogue, as the project view won't show you all drawable folders separately like it used to, so it won't be immediately apparent that it went to wrong one. Studio recreated the vanilla 'drawable' at some point for me after I had deleted it long ago:
I have found that images in the 'drawable' folder will get converted to a much larger image on high def phones. For example, a 200k image will be resampled to a higher res, like 800k or 32000k. I had to discover this on my own and to date have not seen documentation for this heap memory trap. To prevent this I put everything in a drawable-nodpi folder (in addition to using 'options' in BitmapFactory based on the particular device heap). I can't afford to have the size of my app bloated with multiple drawable folders, particularly as the range of screen defs is so vast now. The tricky thing is studio now doesn't specifically indicate the 'drawable-nodpi' folder as such in the project view, it just shows a 'drawable' folder. If you're not careful, when you drop an image to this folder in studio, it won't actually get dropped into the drawable-nodpi:
Careful here 'backgroundtest' did not actually go to drawable-nodpi and will
be resampled higher, such as 4x or 16x of the original dimensions for high def screens.
Be sure to click down to the nodpi folder in the dialogue, as the project view won't show you all drawable folders separately like it used to, so it won't be immediately apparent that it went to wrong one. Studio recreated the vanilla 'drawable' at some point for me after I had deleted it long ago:
edited Nov 12 '17 at 18:50
answered Nov 12 '17 at 16:07
AndroidcoderAndroidcoder
2,30031832
2,30031832
add a comment |
add a comment |
You have to change the size of object in drawable. It's too big for android to display. e.g. If you are setting image try image with less pixels. It works for me.
Thanks. :)
add a comment |
You have to change the size of object in drawable. It's too big for android to display. e.g. If you are setting image try image with less pixels. It works for me.
Thanks. :)
add a comment |
You have to change the size of object in drawable. It's too big for android to display. e.g. If you are setting image try image with less pixels. It works for me.
Thanks. :)
You have to change the size of object in drawable. It's too big for android to display. e.g. If you are setting image try image with less pixels. It works for me.
Thanks. :)
answered Jan 31 '18 at 11:29
Ali Hassan QureshiAli Hassan Qureshi
5110
5110
add a comment |
add a comment |
Your app is crashing because your image size (in MB Or KB) is too large so it is not allocating space for that. So before pasting your image in drawable just reduce the size.
OR
You can add Following in application tag at Manifest.xml
android:hardwareAccelerated="false"
android:largeHeap="true"
android:allowBackup="true"
After Adding this App will not Crash.
- always use less sizes images in App.
- If You adding large sizes of images in app , you should add above syntex, but App size will increase.
add a comment |
Your app is crashing because your image size (in MB Or KB) is too large so it is not allocating space for that. So before pasting your image in drawable just reduce the size.
OR
You can add Following in application tag at Manifest.xml
android:hardwareAccelerated="false"
android:largeHeap="true"
android:allowBackup="true"
After Adding this App will not Crash.
- always use less sizes images in App.
- If You adding large sizes of images in app , you should add above syntex, but App size will increase.
add a comment |
Your app is crashing because your image size (in MB Or KB) is too large so it is not allocating space for that. So before pasting your image in drawable just reduce the size.
OR
You can add Following in application tag at Manifest.xml
android:hardwareAccelerated="false"
android:largeHeap="true"
android:allowBackup="true"
After Adding this App will not Crash.
- always use less sizes images in App.
- If You adding large sizes of images in app , you should add above syntex, but App size will increase.
Your app is crashing because your image size (in MB Or KB) is too large so it is not allocating space for that. So before pasting your image in drawable just reduce the size.
OR
You can add Following in application tag at Manifest.xml
android:hardwareAccelerated="false"
android:largeHeap="true"
android:allowBackup="true"
After Adding this App will not Crash.
- always use less sizes images in App.
- If You adding large sizes of images in app , you should add above syntex, but App size will increase.
answered Jul 23 '18 at 7:45
rhaldarrhaldar
814
814
add a comment |
add a comment |
My problem solved after adding
dexOptions {
incremental true
javaMaxHeapSize "4g"
preDexLibraries true
dexInProcess = true
}
in Build.Gradle file
This just makes your app really bloated in memory usage
– cricket_007
Oct 27 '18 at 18:14
add a comment |
My problem solved after adding
dexOptions {
incremental true
javaMaxHeapSize "4g"
preDexLibraries true
dexInProcess = true
}
in Build.Gradle file
This just makes your app really bloated in memory usage
– cricket_007
Oct 27 '18 at 18:14
add a comment |
My problem solved after adding
dexOptions {
incremental true
javaMaxHeapSize "4g"
preDexLibraries true
dexInProcess = true
}
in Build.Gradle file
My problem solved after adding
dexOptions {
incremental true
javaMaxHeapSize "4g"
preDexLibraries true
dexInProcess = true
}
in Build.Gradle file
answered Aug 13 '18 at 14:16
MidhilajMidhilaj
8151722
8151722
This just makes your app really bloated in memory usage
– cricket_007
Oct 27 '18 at 18:14
add a comment |
This just makes your app really bloated in memory usage
– cricket_007
Oct 27 '18 at 18:14
This just makes your app really bloated in memory usage
– cricket_007
Oct 27 '18 at 18:14
This just makes your app really bloated in memory usage
– cricket_007
Oct 27 '18 at 18:14
add a comment |
If uploading an image, try reducing the image quality, which is the second parameter of the Bitmap. This was the solution in my case. Previously it was 90, then I tried with 60 (as it is in the code below now).
Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
finalBitmap.compress(Bitmap.CompressFormat.JPEG,60,baos);
byte b = baos.toByteArray();
add a comment |
If uploading an image, try reducing the image quality, which is the second parameter of the Bitmap. This was the solution in my case. Previously it was 90, then I tried with 60 (as it is in the code below now).
Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
finalBitmap.compress(Bitmap.CompressFormat.JPEG,60,baos);
byte b = baos.toByteArray();
add a comment |
If uploading an image, try reducing the image quality, which is the second parameter of the Bitmap. This was the solution in my case. Previously it was 90, then I tried with 60 (as it is in the code below now).
Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
finalBitmap.compress(Bitmap.CompressFormat.JPEG,60,baos);
byte b = baos.toByteArray();
If uploading an image, try reducing the image quality, which is the second parameter of the Bitmap. This was the solution in my case. Previously it was 90, then I tried with 60 (as it is in the code below now).
Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
finalBitmap.compress(Bitmap.CompressFormat.JPEG,60,baos);
byte b = baos.toByteArray();
answered Jul 1 '16 at 12:39
Teo MihailaTeo Mihaila
59113
59113
add a comment |
add a comment |
Try the simplest one. Maybe Your app is crashing because your image size (in MB) is too large so it is not allocating space for that. So before pasting your image in drawable just reduce the size by any viewer software or if you are taking image from gallery at the run time than before saving it compress your bitmap.
It worked for me. definitely for u will be.
add a comment |
Try the simplest one. Maybe Your app is crashing because your image size (in MB) is too large so it is not allocating space for that. So before pasting your image in drawable just reduce the size by any viewer software or if you are taking image from gallery at the run time than before saving it compress your bitmap.
It worked for me. definitely for u will be.
add a comment |
Try the simplest one. Maybe Your app is crashing because your image size (in MB) is too large so it is not allocating space for that. So before pasting your image in drawable just reduce the size by any viewer software or if you are taking image from gallery at the run time than before saving it compress your bitmap.
It worked for me. definitely for u will be.
Try the simplest one. Maybe Your app is crashing because your image size (in MB) is too large so it is not allocating space for that. So before pasting your image in drawable just reduce the size by any viewer software or if you are taking image from gallery at the run time than before saving it compress your bitmap.
It worked for me. definitely for u will be.
edited Jun 18 '17 at 10:27
yakobom
2,19111928
2,19111928
answered Jun 18 '17 at 7:52
neensneens
155
155
add a comment |
add a comment |
stream = activity.getContentResolver().openInputStream(uri);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.RGB_565;
bitmap = BitmapFactory.decodeStream(stream, null, options);
int Height = bitmap.getHeight();
int Width = bitmap.getWidth();
enter code here
int newHeight = 1000;
float scaleFactor = ((float) newHeight) / Height;
float newWidth = Width * scaleFactor;
float scaleWidth = scaleFactor;
float scaleHeight = scaleFactor;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
resizedBitmap= Bitmap.createBitmap(bitmap, 0, 0,Width, Height, matrix, true);
bitmap.recycle();
Then in Appliaction tag, add largeheapsize="true
add a comment |
stream = activity.getContentResolver().openInputStream(uri);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.RGB_565;
bitmap = BitmapFactory.decodeStream(stream, null, options);
int Height = bitmap.getHeight();
int Width = bitmap.getWidth();
enter code here
int newHeight = 1000;
float scaleFactor = ((float) newHeight) / Height;
float newWidth = Width * scaleFactor;
float scaleWidth = scaleFactor;
float scaleHeight = scaleFactor;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
resizedBitmap= Bitmap.createBitmap(bitmap, 0, 0,Width, Height, matrix, true);
bitmap.recycle();
Then in Appliaction tag, add largeheapsize="true
add a comment |
stream = activity.getContentResolver().openInputStream(uri);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.RGB_565;
bitmap = BitmapFactory.decodeStream(stream, null, options);
int Height = bitmap.getHeight();
int Width = bitmap.getWidth();
enter code here
int newHeight = 1000;
float scaleFactor = ((float) newHeight) / Height;
float newWidth = Width * scaleFactor;
float scaleWidth = scaleFactor;
float scaleHeight = scaleFactor;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
resizedBitmap= Bitmap.createBitmap(bitmap, 0, 0,Width, Height, matrix, true);
bitmap.recycle();
Then in Appliaction tag, add largeheapsize="true
stream = activity.getContentResolver().openInputStream(uri);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.RGB_565;
bitmap = BitmapFactory.decodeStream(stream, null, options);
int Height = bitmap.getHeight();
int Width = bitmap.getWidth();
enter code here
int newHeight = 1000;
float scaleFactor = ((float) newHeight) / Height;
float newWidth = Width * scaleFactor;
float scaleWidth = scaleFactor;
float scaleHeight = scaleFactor;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
resizedBitmap= Bitmap.createBitmap(bitmap, 0, 0,Width, Height, matrix, true);
bitmap.recycle();
Then in Appliaction tag, add largeheapsize="true
edited Oct 8 '18 at 4:55
Pang
6,9511664103
6,9511664103
answered Sep 21 '18 at 10:28
sathish mobapp devsathish mobapp dev
785
785
add a comment |
add a comment |
Last but not the least....
Try Method One:
Simple Add these lines of code in the gradle file
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
Example:
android {
compileSdkVersion XX
buildToolsVersion "28.X.X"
defaultConfig {
applicationId "com.example.xxxxx"
minSdkVersion 14
targetSdkVersion 19
}
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
}
*******************************************************************
Method Two:
Add these two lines of code in manifest file...
android:hardwareAccelerated="false"
android:largeHeap="true"
Example:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:hardwareAccelerated="false"
android:largeHeap="true"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
It will Work for sure any of these cases.....
add a comment |
Last but not the least....
Try Method One:
Simple Add these lines of code in the gradle file
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
Example:
android {
compileSdkVersion XX
buildToolsVersion "28.X.X"
defaultConfig {
applicationId "com.example.xxxxx"
minSdkVersion 14
targetSdkVersion 19
}
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
}
*******************************************************************
Method Two:
Add these two lines of code in manifest file...
android:hardwareAccelerated="false"
android:largeHeap="true"
Example:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:hardwareAccelerated="false"
android:largeHeap="true"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
It will Work for sure any of these cases.....
add a comment |
Last but not the least....
Try Method One:
Simple Add these lines of code in the gradle file
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
Example:
android {
compileSdkVersion XX
buildToolsVersion "28.X.X"
defaultConfig {
applicationId "com.example.xxxxx"
minSdkVersion 14
targetSdkVersion 19
}
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
}
*******************************************************************
Method Two:
Add these two lines of code in manifest file...
android:hardwareAccelerated="false"
android:largeHeap="true"
Example:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:hardwareAccelerated="false"
android:largeHeap="true"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
It will Work for sure any of these cases.....
Last but not the least....
Try Method One:
Simple Add these lines of code in the gradle file
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
Example:
android {
compileSdkVersion XX
buildToolsVersion "28.X.X"
defaultConfig {
applicationId "com.example.xxxxx"
minSdkVersion 14
targetSdkVersion 19
}
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
}
*******************************************************************
Method Two:
Add these two lines of code in manifest file...
android:hardwareAccelerated="false"
android:largeHeap="true"
Example:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:hardwareAccelerated="false"
android:largeHeap="true"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
It will Work for sure any of these cases.....
answered Nov 30 '18 at 9:59
Ambilpura Sunil KumarAmbilpura Sunil Kumar
17712
17712
add a comment |
add a comment |
Use an image loading library like Picasso or Glide. Using these libraries will prevent crashes in the future.
add a comment |
Use an image loading library like Picasso or Glide. Using these libraries will prevent crashes in the future.
add a comment |
Use an image loading library like Picasso or Glide. Using these libraries will prevent crashes in the future.
Use an image loading library like Picasso or Glide. Using these libraries will prevent crashes in the future.
answered Jan 15 at 16:27
Vladyslav PanchenkoVladyslav Panchenko
15617
15617
add a comment |
add a comment |
protected by Community♦ Aug 26 '17 at 0:17
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?
3
check the pixels of the image, the width must not exceed 1440 and height 2560, by doing this it won't show OutOfMemoryError
– Pankaj Lilan
Dec 16 '16 at 9:28
1
@PankajLilan Where did you find these values (1440 X 2560)? Any references from android documentations?
– Lijo
Jul 14 '17 at 18:00
See also stackoverflow.com/questions/477572/…
– JFreeman
Feb 14 at 3:53