Android: Inflate Exception after trying to add another language to my application

Anaka

New Member
My Android application was working in English and I have to provide the users with an Arabic version too. I did the following, [*]Added a layout-ar folder and put my layout files there.[*]Added a drawable-ar folder and put my images there.[*]Added a values-ar folder and translated my string resources in strings.xml[*]Changed the language settings in my emulator to Arabic for testingAlthough the English version of my app was working fine, my Arabic version now crashes with the following log trace \[code\]06-20 10:08:13.153: E/AndroidRuntime(623): FATAL EXCEPTION: main06-20 10:08:13.153: E/AndroidRuntime(623): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.digitalhealthagency.elaj.gui/org.digitalhealthagency.elaj.gui.SplashScreen}: android.view.InflateException: Binary XML file line #7: Error inflating class android.widget.ImageView06-20 10:08:13.153: E/AndroidRuntime(623): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)06-20 10:08:13.153: E/AndroidRuntime(623): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)06-20 10:08:13.153: E/AndroidRuntime(623): at android.app.ActivityThread.access$600(ActivityThread.java:123)06-20 10:08:13.153: E/AndroidRuntime(623): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)06-20 10:08:13.153: E/AndroidRuntime(623): at android.os.Handler.dispatchMessage(Handler.java:99)06-20 10:08:13.153: E/AndroidRuntime(623): at android.os.Looper.loop(Looper.java:137)06-20 10:08:13.153: E/AndroidRuntime(623): at android.app.ActivityThread.main(ActivityThread.java:4424)06-20 10:08:13.153: E/AndroidRuntime(623): at java.lang.reflect.Method.invokeNative(Native Method)06-20 10:08:13.153: E/AndroidRuntime(623): at java.lang.reflect.Method.invoke(Method.java:511)06-20 10:08:13.153: E/AndroidRuntime(623): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)06-20 10:08:13.153: E/AndroidRuntime(623): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)06-20 10:08:13.153: E/AndroidRuntime(623): at dalvik.system.NativeStart.main(Native Method)06-20 10:08:13.153: E/AndroidRuntime(623): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class android.widget.ImageView06-20 10:08:13.153: E/AndroidRuntime(623): at android.view.LayoutInflater.createView(LayoutInflater.java:606)06-20 10:08:13.153: E/AndroidRuntime(623): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)06-20 10:08:13.153: E/AndroidRuntime(623): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:653)06-20 10:08:13.153: E/AndroidRuntime(623): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678)06-20 10:08:13.153: E/AndroidRuntime(623): at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)06-20 10:08:13.153: E/AndroidRuntime(623): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)06-20 10:08:13.153: E/AndroidRuntime(623): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)06-20 10:08:13.153: E/AndroidRuntime(623): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)06-20 10:08:13.153: E/AndroidRuntime(623): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)06-20 10:08:13.153: E/AndroidRuntime(623): at android.app.Activity.setContentView(Activity.java:1835)06-20 10:08:13.153: E/AndroidRuntime(623): at org.digitalhealthagency.elaj.gui.SplashScreen.onCreate(SplashScreen.java:16)06-20 10:08:13.153: E/AndroidRuntime(623): at android.app.Activity.performCreate(Activity.java:4465)06-20 10:08:13.153: E/AndroidRuntime(623): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)06-20 10:08:13.153: E/AndroidRuntime(623): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)06-20 10:08:13.153: E/AndroidRuntime(623): ... 11 more06-20 10:08:13.153: E/AndroidRuntime(623): Caused by: java.lang.reflect.InvocationTargetException06-20 10:08:13.153: E/AndroidRuntime(623): at java.lang.reflect.Constructor.constructNative(Native Method)06-20 10:08:13.153: E/AndroidRuntime(623): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)06-20 10:08:13.153: E/AndroidRuntime(623): at android.view.LayoutInflater.createView(LayoutInflater.java:586)06-20 10:08:13.153: E/AndroidRuntime(623): ... 24 more06-20 10:08:13.153: E/AndroidRuntime(623): Caused by: java.lang.OutOfMemoryError06-20 10:08:13.153: E/AndroidRuntime(623): at android.graphics.Bitmap.nativeCreate(Native Method)06-20 10:08:13.153: E/AndroidRuntime(623): at android.graphics.Bitmap.createBitmap(Bitmap.java:605)06-20 10:08:13.153: E/AndroidRuntime(623): at android.graphics.Bitmap.createBitmap(Bitmap.java:551)06-20 10:08:13.153: E/AndroidRuntime(623): at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:437)06-20 10:08:13.153: E/AndroidRuntime(623): at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:524)06-20 10:08:13.153: E/AndroidRuntime(623): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:499)06-20 10:08:13.153: E/AndroidRuntime(623): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:351)06-20 10:08:13.153: E/AndroidRuntime(623): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:773)06-20 10:08:13.153: E/AndroidRuntime(623): at android.content.res.Resources.loadDrawable(Resources.java:1935)06-20 10:08:13.153: E/AndroidRuntime(623): at android.content.res.TypedArray.getDrawable(TypedArray.java:601)06-20 10:08:13.153: E/AndroidRuntime(623): at android.widget.ImageView.<init>(ImageView.java:119)06-20 10:08:13.153: E/AndroidRuntime(623): at android.widget.ImageView.<init>(ImageView.java:109)06-20 10:08:13.153: E/AndroidRuntime(623): ... 27 more\[/code\]The error log refers to line 16 in my SplashScreen java file which sets the content view \[code\]setContentView(R.layout.splash_screen);\[/code\]And my splash_screen.xml file is as follows \[code\]<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/splash_screen" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:src="http://stackoverflow.com/questions/11115631/@drawable/splash_screen" /></LinearLayout>\[/code\]This question is quite similar to mine Android: How to track down the origin of a InflateException? but fixing the style is not solving the problem. Thank you in advance! EDITAfter reducing the size of the images as suggested by Aleks G, the image loaded normally, but now I am getting a similar error in a different place.\[code\]06-20 14:27:22.157: E/AndroidRuntime(623): FATAL EXCEPTION: main06-20 14:27:22.157: E/AndroidRuntime(623): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.digitalhealthagency.elaj.gui/org.digitalhealthagency.elaj.gui.AppointmentReservationActivity}: android.view.InflateException: Binary XML file line #99: Error inflating class <unknown>06-20 14:27:22.157: E/AndroidRuntime(623): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)06-20 14:27:22.157: E/AndroidRuntime(623): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)06-20 14:27:22.157: E/AndroidRuntime(623): at android.app.ActivityThread.access$600(ActivityThread.java:123)06-20 14:27:22.157: E/AndroidRuntime(623): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)06-20 14:27:22.157: E/AndroidRuntime(623): at android.os.Handler.dispatchMessage(Handler.java:99)06-20 14:27:22.157: E/AndroidRuntime(623): at android.os.Looper.loop(Looper.java:137)06-20 14:27:22.157: E/AndroidRuntime(623): at android.app.ActivityThread.main(ActivityThread.java:4424)06-20 14:27:22.157: E/AndroidRuntime(623): at java.lang.reflect.Method.invokeNative(Native Method)06-20 14:27:22.157: E/AndroidRuntime(623): at java.lang.reflect.Method.invoke(Method.java:511)06-20 14:27:22.157: E/AndroidRuntime(623): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)06-20 14:27:22.157: E/AndroidRuntime(623): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)06-20 14:27:22.157: E/AndroidRuntime(623): at dalvik.system.NativeStart.main(Native Method)06-20 14:27:22.157: E/AndroidRuntime(623): Caused by: android.view.InflateException: Binary XML file line #99: Error inflating class <unknown>06-20 14:27:22.157: E/AndroidRuntime(623): at android.view.LayoutInflater.createView(LayoutInflater.java:606)06-20 14:27:22.157: E/AndroidRuntime(623): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)06-20 14:27:22.157: E/AndroidRuntime(623): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:653)06-20 14:27:22.157: E/AndroidRuntime(623): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678)06-20 14:27:22.157: E/AndroidRuntime(623): at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)06-20 14:27:22.157: E/AndroidRuntime(623): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)06-20 14:27:22.157: E/AndroidRuntime(623): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)06-20 14:27:22.157: E/AndroidRuntime(623): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)06-20 14:27:22.157: E/AndroidRuntime(623): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)06-20 14:27:22.157: E/AndroidRuntime(623): at android.app.Activity.setContentView(Activity.java:1835)06-20 14:27:22.157: E/AndroidRuntime(623): at org.digitalhealthagency.elaj.gui.AppointmentReservationActivity.onCreate(AppointmentReservationActivity.java:88)06-20 14:27:22.157: E/AndroidRuntime(623): at android.app.Activity.performCreate(Activity.java:4465)06-20 14:27:22.157: E/AndroidRuntime(623): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)06-20 14:27:22.157: E/AndroidRuntime(623): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)06-20 14:27:22.157: E/AndroidRuntime(623): ... 11 more06-20 14:27:22.157: E/AndroidRuntime(623): Caused by: java.lang.reflect.InvocationTargetException06-20 14:27:22.157: E/AndroidRuntime(623): at java.lang.reflect.Constructor.constructNative(Native Method)06-20 14:27:22.157: E/AndroidRuntime(623): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)06-20 14:27:22.157: E/AndroidRuntime(623): at android.view.LayoutInflater.createView(LayoutInflater.java:586)06-20 14:27:22.157: E/AndroidRuntime(623): ... 24 more06-20 14:27:22.157: E/AndroidRuntime(623): Caused by: java.lang.OutOfMemoryError06-20 14:27:22.157: E/AndroidRuntime(623): at android.graphics.Bitmap.nativeCreate(Native Method)06-20 14:27:22.157: E/AndroidRuntime(623): at android.graphics.Bitmap.createBitmap(Bitmap.java:605)06-20 14:27:22.157: E/AndroidRuntime(623): at android.graphics.Bitmap.createBitmap(Bitmap.java:551)06-20 14:27:22.157: E/AndroidRuntime(623): at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:437)06-20 14:27:22.157: E/AndroidRuntime(623): at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:524)06-20 14:27:22.157: E/AndroidRuntime(623): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:499)06-20 14:27:22.157: E/AndroidRuntime(623): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:351)06-20 14:27:22.157: E/AndroidRuntime(623): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:773)06-20 14:27:22.157: E/AndroidRuntime(623): at android.content.res.Resources.loadDrawable(Resources.java:1935)06-20 14:27:22.157: E/AndroidRuntime(623): at android.content.res.Resources.getDrawable(Resources.java:664)06-20 14:27:22.157: E/AndroidRuntime(623): at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)06-20 14:27:22.157: E/AndroidRuntime(623): at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:867)06-20 14:27:22.157: E/AndroidRuntime(623): at android.graphics.drawable.Drawable.createFromXml(Drawable.java:804)06-20 14:27:22.157: E/AndroidRuntime(623): at android.content.res.Resources.loadDrawable(Resources.java:1920)06-20 14:27:22.157: E/AndroidRuntime(623): at android.content.res.TypedArray.getDrawable(TypedArray.java:601)06-20 14:27:22.157: E/AndroidRuntime(623): at android.view.View.<init>(View.java:2785)06-20 14:27:22.157: E/AndroidRuntime(623): at android.widget.TextView.<init>(TextView.java:449)06-20 14:27:22.157: E/AndroidRuntime(623): at android.widget.Button.<init>(Button.java:108)06-20 14:27:22.157: E/AndroidRuntime(623): at android.widget.Button.<init>(Button.java:104)06-20 14:27:22.157: E/AndroidRuntime(623): ... 27 more\[/code\]Line 88 that the log trace refers to is \[code\]setContentView(R.layout.appointment_reservation);\[/code\]And line #99 in appointment_reservation.xml is\[code\] <Button android:id="@+id/reserve_button" android:text="@string/reserve_button" android:layout_width="120dp" android:layout_height="40dp" android:layout_marginTop="10dp" android:layout_marginLeft="20dp" android:paddingRight="15dp" android:layout_gravity="left" style="@style/buttonStyle" android:background="@drawable/button_selector" />\[/code\]I give the button a button_selector xml file which is placed in my drawable folder. The selector switches between two images (total size 6kb).Thank you in advance!
 
Back
Top