user1420042
user1420042

Reputation: 1709

Why is my Android app crashing when I change the orientation?

I have integrated different xml layouts for different orientations in one of my activities. On an Android 4.0 everything is fine when I change the orientation but on 1.6 it crashes. Why? Any solutions?

Here is my log cat:

        10-06 17:49:07.539: I/ActivityManager(51): Displayed activity com.xyz.android.test/.MainActivity: 4038 ms (total 4038 ms)
        10-06 17:49:17.139: I/WindowManager(51): onOrientationChanged, rotation changed to 1
        10-06 17:49:17.139: I/WindowManager(51): Setting rotation to 1, animFlags=0
        10-06 17:49:17.169: I/WindowManager(51): Config changed: { scale=1.0 imsi=0/0 loc=en_US touch=3 keys=1/1/2 nav=3 orien=2 layout=34}
        10-06 17:49:17.269: D/StatusBar(51): updateResources
        10-06 17:49:17.569: D/dalvikvm(255): GC freed 177 objects / 10496 bytes in 45ms
        10-06 17:49:18.009: D/dalvikvm(255): GC freed 65 objects / 2600 bytes in 42ms
        10-06 17:49:18.369: E/dalvikvm-heap(255): 589824-byte external allocation too large for this process.
        10-06 17:49:18.369: E/(255): VM won't let us allocate 589824 bytes
        10-06 17:49:18.369: D/AndroidRuntime(255): Shutting down VM
        10-06 17:49:18.379: W/dalvikvm(255): threadid=3: thread exiting with uncaught exception (group=0x4001aa28)
        10-06 17:49:18.379: E/AndroidRuntime(255): Uncaught handler: thread main exiting due to uncaught exception
        10-06 17:49:18.389: E/AndroidRuntime(255): android.view.InflateException: Binary XML file line #40: Error inflating class java.lang.reflect.Constructor
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.view.LayoutInflater.createView(LayoutInflater.java:512)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:562)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:617)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:620)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:313)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.app.Activity.setContentView(Activity.java:1620)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at com.xyz.android.test.MainActivity.onConfigurationChanged(MainActivity.java:55)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.app.ActivityThread.performConfigurationChanged(ActivityThread.java:3607)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.app.ActivityThread.handleConfigurationChanged(ActivityThread.java:3673)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1864)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.os.Handler.dispatchMessage(Handler.java:99)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.os.Looper.loop(Looper.java:123)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.app.ActivityThread.main(ActivityThread.java:4203)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at java.lang.reflect.Method.invokeNative(Native Method)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at java.lang.reflect.Method.invoke(Method.java:521)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at dalvik.system.NativeStart.main(Native Method)
        10-06 17:49:18.389: E/AndroidRuntime(255): Caused by: java.lang.reflect.InvocationTargetException
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.widget.ImageView.<init>(ImageView.java:105)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at java.lang.reflect.Constructor.constructNative(Native Method)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.view.LayoutInflater.createView(LayoutInflater.java:499)
        10-06 17:49:18.389: E/AndroidRuntime(255):  ... 21 more
        10-06 17:49:18.389: E/AndroidRuntime(255): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.graphics.Bitmap.nativeCreate(Native Method)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.graphics.Bitmap.createBitmap(Bitmap.java:468)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.graphics.Bitmap.createBitmap(Bitmap.java:435)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:340)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:476)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:322)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:688)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.content.res.Resources.loadDrawable(Resources.java:1710)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.content.res.Resources.getDrawable(Resources.java:585)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:146)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:779)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.graphics.drawable.Drawable.createFromXml(Drawable.java:720)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.content.res.Resources.loadDrawable(Resources.java:1695)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.content.res.TypedArray.getDrawable(TypedArray.java:548)
        10-06 17:49:18.389: E/AndroidRuntime(255):  at android.widget.ImageView.<init>(ImageView.java:115)
        10-06 17:49:18.389: E/AndroidRuntime(255):  ... 25 more
        10-06 17:49:18.409: I/Process(51): Sending signal. PID: 255 SIG: 3
        10-06 17:49:18.419: I/dalvikvm(255): threadid=7: reacting to signal 3
        10-06 17:49:18.419: E/dalvikvm(255): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
        10-06 17:49:19.139: W/WindowManager(51): Window freeze timeout expired.
        10-06 17:49:19.139: W/WindowManager(51): Force clearing orientation change: Window{43970380 com.xyz.android.test/com.xyz.android.test.MainActivity paused=false}
        10-06 17:49:21.219: D/dalvikvm(51): GC freed 1812 objects / 89840 bytes in 79ms
        10-06 17:49:22.279: W/SurfaceFlinger(51): timeout expired mFreezeDisplay=0, mFreezeCount=1

Upvotes: 2

Views: 789

Answers (2)

LeeNeverGup
LeeNeverGup

Reputation: 1114

The critical line is this:

Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget

It says you have a bitmap that reuire more memory than you have.
If you tested it with the emulator, maybe you didn't let it use enough memory.
Otherwise, the image is too large and you should reduse its quality.

Upvotes: 3

Rubycon
Rubycon

Reputation: 18346

Looks like you have some problem with xml layout for 1.6:

android.view.InflateException: Binary XML file line #40: 

line 40

Upvotes: 0

Related Questions