Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid: Memory error because of an ImageView?
    primarykey
    data
    text
    <p>I have 2 activities Activity A = GameActivity uses an instance of PhotoTask.class which extends AsyncTask and is used to take and save picture. Once the picture is saved, I start Activity B = ShareActivity.</p> <p>When I take a picture and don't change the orientation, Activity B is called and everything works fine. Yet, if I change the orientation of the screen to take the picture (I pass from portait to landscape) I have errors when I take a picture (Activity B does not start).</p> <p>I even commented my bitmap images in my code, but still have bitmap errors! What is <strong>strange</strong> is that if I comment the ImageView5 in my code (which does nothing particular) and keep my bitmap, I have no error. The problem seems to come frome this ImageView but I cant explain it</p> <p>I added configChanges:orientation in the manifest, recycle my bnitmaps, used a WeakReference of an activity instead of the acitvity itself as a variable in PhotoTask, tried to see the memory leaks with eclipse memory analyzer (<a href="https://stackoverflow.com/questions/14646029/android-detecting-leaks-with-eclipse-memory-analyzer">Android: Detecting leaks with Eclipse Memory Analyzer</a>) but didnt understand why I had these errors</p> <p>I really searched a lot and I'm becoming quite desperate so if you could please help me it would be nice</p> <pre><code>02-04 10:03:04.353: E/AndroidRuntime(17427): FATAL EXCEPTION: main 02-04 10:03:04.353: E/AndroidRuntime(17427): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.kersplatt/com.example.kersplatt.ShareActivity}: android.view.InflateException: Binary XML file line #23: Error inflating class &lt;unknown&gt; 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.os.Handler.dispatchMessage(Handler.java:99) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.os.Looper.loop(Looper.java:130) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.app.ActivityThread.main(ActivityThread.java:3683) 02-04 10:03:04.353: E/AndroidRuntime(17427): at java.lang.reflect.Method.invokeNative(Native Method) 02-04 10:03:04.353: E/AndroidRuntime(17427): at java.lang.reflect.Method.invoke(Method.java:507) 02-04 10:03:04.353: E/AndroidRuntime(17427): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:875) 02-04 10:03:04.353: E/AndroidRuntime(17427): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:633) 02-04 10:03:04.353: E/AndroidRuntime(17427): at dalvik.system.NativeStart.main(Native Method) 02-04 10:03:04.353: E/AndroidRuntime(17427): Caused by: android.view.InflateException: Binary XML file line #23: Error inflating class &lt;unknown&gt; 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.view.LayoutInflater.createView(LayoutInflater.java:518) 02-04 10:03:04.353: E/AndroidRuntime(17427): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.view.LayoutInflater.rInflate(LayoutInflater.java:626) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.view.LayoutInflater.inflate(LayoutInflater.java:408) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 02-04 10:03:04.353: E/AndroidRuntime(17427): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:209) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.app.Activity.setContentView(Activity.java:1657) 02-04 10:03:04.353: E/AndroidRuntime(17427): at com.example.kersplatt.ShareActivity.onCreate(ShareActivity.java:64) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 02-04 10:03:04.353: E/AndroidRuntime(17427): ... 11 more 02-04 10:03:04.353: E/AndroidRuntime(17427): Caused by: java.lang.reflect.InvocationTargetException 02-04 10:03:04.353: E/AndroidRuntime(17427): at java.lang.reflect.Constructor.constructNative(Native Method) 02-04 10:03:04.353: E/AndroidRuntime(17427): at java.lang.reflect.Constructor.newInstance(Constructor.java:415) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.view.LayoutInflater.createView(LayoutInflater.java:505) 02-04 10:03:04.353: E/AndroidRuntime(17427): ... 23 more 02-04 10:03:04.353: E/AndroidRuntime(17427): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:460) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:336) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.content.res.Resources.loadDrawable(Resources.java:1709) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.widget.ImageView.&lt;init&gt;(ImageView.java:118) 02-04 10:03:04.353: E/AndroidRuntime(17427): at android.widget.ImageView.&lt;init&gt;(ImageView.java:108) 02-04 10:03:04.353: E/AndroidRuntime(17427): ... 26 more </code></pre> <p>FOR YOUR INFORMATION, PIECE OF MY CODE</p> <pre><code>public class ShareActivity extends Activity implements OnClickListener{ public static final String APP_ID = "**********"; Facebook facebook = new Facebook(APP_ID); AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook); String FILENAME = "AndroidSSO_data"; SharedPreferences mPrefs; Handler mHandler; File file; byte[] bytes; @Override protected void onCreate(Bundle savedInstanceState) { Log.w("SHAREACTIVITY","SECOND"); super.onCreate(savedInstanceState); setContentView(R.layout.share); file = (File) this.getIntent().getExtras().get("PICTURE_TAKEN"); Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath()); Bitmap mutableBitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true); **ImageView image5 = (ImageView) findViewById(R.id.imageView5);** **image5.setImageBitmap(mutableBitmap);** bitmap.recycle(); mutableBitmap.recycle(); } </code></pre> <p>CLASS PHOTOTASK</p> <pre><code>public class PhotoTask extends AsyncTask&lt;Boolean, Void, Void&gt; { private Camera camera; private SurfaceView surfaceCamera; private boolean isPreview=false; private SurfaceHolder holder; private WeakReference&lt;GameActivity&gt; weakgameactivity; GameActivity gameactivity; private File output; public PhotoTask(Camera camera, SurfaceView surfaceCamera,boolean isPreview, SurfaceHolder holder, GameActivity gameactivity) { super(); this.camera = camera; this.surfaceCamera = surfaceCamera; this.isPreview = isPreview; this.holder = holder; this.weakgameactivity = new WeakReference&lt;GameActivity&gt;(gameactivity); this.gameactivity=this.weakgameactivity.get(); } PictureCallback myPictureCallback_JPG = new PictureCallback(){ @Override public void onPictureTaken(byte[] data, Camera camera) { Log.w("GAMEACTIVITY","FIRST"); // ImageView image5 = (ImageView) gameactivity.findViewById(R.id.imageView6); File imagesFolder = new File(Environment.getExternalStorageDirectory(), "/KersplattFolder"); imagesFolder.mkdirs(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyymmddhhmmss"); String date = dateFormat.format(new Date()); String fileName = "Kersplatt_" + date + ".jpg"; output = new File(imagesFolder, fileName); ImageView view = (ImageView) gameactivity.findViewById(R.id.imageView6); view.setDrawingCacheEnabled(true); Bitmap b = view.getDrawingCache(); FileOutputStream fos = null; try { fos = new FileOutputStream(output); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } b.compress(CompressFormat.JPEG, 95, fos); try { fos.write(data); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } camera.stopPreview(); Log.w("GAMEACTIVITY","INTENT"); b.recycle(); Intent intent = new Intent(gameactivity.getApplicationContext(),ShareActivity.class); // Sending the picture taken to ShareActivity intent.putExtra("PICTURE_TAKEN", output); gameactivity.startActivity(intent); } }; @Override protected Void doInBackground(Boolean... params) { camera.takePicture(null,null, myPictureCallback_JPG); Log.w("GAMEACTIVITY","TAKEPICTURE"); return null; } } </code></pre> <p>My imageview5</p> <pre><code> &lt;ImageView android:id="@+id/imageView5" android:layout_width="85dp" android:layout_height="100dp" android:layout_marginLeft="8dp" android:layout_marginTop="20dp" android:adjustViewBounds="true" android:src="@drawable/diviseur" /&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload