1

Suddenly my application crashing while displaying Toast message. It was working perfectly before.

I have fragment with ImageView and button download that image. I show the image by downloading in temporary location and show in imageview. If user clicks on save image, i simply rename the temporary file.

I remember I have not touched this fragment code and layout and related classes but was modifying other file and updated gradle and android studio to latest 2.1. Suddenly my app is stopping with exceptions and below is the logcat which i couldn't understand.

Also some other places where toast message were displaying now getting errors.

I am referring to the link android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>

but not sure what step i should take to resolve this strange error.

android.view.InflateException: Binary XML file line #21: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:633)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
at android.view.LayoutInflater.inflate(LayoutInflater.java:482)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at android.widget.Toast.makeText(Toast.java:262)
at com.srids.sathyasaiinspires.FragmentImage$1.onClick(FragmentImage.java:78)
at android.view.View.performClick(View.java:4856)
at android.view.View$PerformClick.run(View.java:19956)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5389)
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:1020)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at android.view.LayoutInflater.createView(LayoutInflater.java:607)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) 
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:482) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
at android.widget.Toast.makeText(Toast.java:262) 
at com.srids.sathyasaiinspires.FragmentImage$1.onClick(FragmentImage.java:78) 
at android.view.View.performClick(View.java:4856) 
at android.view.View$PerformClick.run(View.java:19956) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:211) 
at android.app.ActivityThread.main(ActivityThread.java:5389) 
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:1020) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815) 
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=6; index=6
at android.content.res.Resources.toPreloadCookie(Resources.java:2491)
at android.content.res.Resources.loadDrawable(Resources.java:2519)
at android.content.res.TypedArray.getDrawable(TypedArray.java:749)
at android.view.View.<init>(View.java:3813)
at android.view.ViewGroup.<init>(ViewGroup.java:498)
at android.widget.LinearLayout.<init>(LinearLayout.java:200)
at android.widget.LinearLayout.<init>(LinearLayout.java:196)
at android.widget.LinearLayout.<init>(LinearLayout.java:192)
at java.lang.reflect.Constructor.newInstance(Native Method) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) 
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:482) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
at android.widget.Toast.makeText(Toast.java:262)

My updated gradle:

compile 'com.android.support:design:23.2.1'
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:recyclerview-v7:23.2.1'
compile 'com.android.support:support-v4:23.2.1'

Below is the xml file of the fragment:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/imageView1"
        style="@style/btnStyleSandrift"
        android:layout_width="250dp"
        android:layout_height="250dp"
        android:layout_alignParentTop="true"
        android:layout_centerInParent="true"
        android:layout_marginTop="30dp"
        android:background="@drawable/custom_btn_sandrift"
        android:contentDescription="@+id/cont_desc"
        android:src="@drawable/default_image" />

    <Button
        android:id="@+id/button1"
        style="@style/btnStyleSandrift"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/imageView1"
        android:layout_centerInParent="true"
        android:layout_marginTop="70dp"
        android:background="@drawable/custom_btn_sandrift"
        android:gravity="center"
        android:text="@string/SaveImage" />

</RelativeLayout>

FragmentImage.java file Code just implements onCreateView() as shown below:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
   // Inflate the layout for this fragment
   View rootView = inflater.inflate(R.layout.fragment_image, container, false);
   loader = R.drawable.default_image;
   imgview = (ImageView) rootView.findViewById(R.id.imageView1);

   urlImageString = getArguments().getString("URLIMAGESTRING");
   file_string = getArguments().getString("FILESTRING");

   imgLoader = new ImageLoader(super.getActivity().getApplicationContext());
   imgLoader.DisplayImage(urlImageString, loader, imgview, file_string);

   Button imgBtn = (Button) rootView.findViewById(R.id.button1);
   imgBtn.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           // TODO Auto-generated method stub
           if (imgLoader.SaveImage(file_string)) {
               Toast.makeText(getActivity().getApplicationContext(), "Image saved...", Toast.LENGTH_LONG).show();
           } else {
               Toast.makeText(getActivity().getApplicationContext(), "Image not found...", Toast.LENGTH_LONG).show();
           }
       }
   });
   return rootView;
}

when app is started on portrait mode and if i click on save it is crashing. before that If i rotate, that loads land\fragment_image.xml with same image and button simply works. Again after putting portrait mode, there is no crash. This is happening in my xperia Z only. on Emulators, it is working perfectly.

Fix identified:

Took me almost 3 days to see what is causing the issue and finally the issue seems in appcompat-v7-23.2.1 I replaced my support libraries as below and everything is working fine.

    compile 'com.android.support:design:23.1.1'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:recyclerview-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'

And I referred below link also: https://code.google.com/p/android/issues/detail?id=201817

Community
  • 1
  • 1

0 Answers0