0

I have a check box defined in the xml file for my dialog fragment. When the code is executed it causes Inflate Exception. I don't know what is wrong with the code. If the check box is removed everything works fine. The same exception arises if i use a radio button also.

Here is my xml File.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#6688AA">

<LinearLayout
    android:id="@+id/linearLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:orientation="horizontal"
    android:padding="1dp"
    android:weightSum="4">
    <!--<TextView-->
    <!--android:layout_width="wrap_content"-->
    <!--android:layout_height="wrap_content"-->
    <!--android:text="Sample Photo"-->
    <!--android:layout_gravity="center"-->
    <!--android:textSize="18sp"/>-->
    <ImageView
        android:layout_width="0dp"
        android:layout_height="100dp"
        android:layout_weight="1"
        android:src="@drawable/correct_face" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="100dp"
        android:layout_weight="1"
        android:src="@drawable/error_face_1" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="100dp"
        android:layout_weight="1"
        android:src="@drawable/error_face_2" />


    <ImageView
        android:layout_width="0dp"
        android:layout_height="100dp"
        android:layout_weight="1"
        android:src="@drawable/error_face_3" />

</LinearLayout>

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/linearLayout"
    android:layout_centerHorizontal="true"
    android:layout_gravity="center_horizontal"
    android:gravity="center"
    android:text="Upload Your Photo"
    android:textSize="40sp" />

<Button
    android:id="@+id/button_camera"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignEnd="@+id/textView"
    android:layout_alignRight="@+id/textView"
    android:layout_alignTop="@+id/button_gallery"
    android:background="#917528"
    android:drawableLeft="@android:drawable/ic_menu_camera"
    android:text="Camera" />

<Button
    android:id="@+id/button_gallery"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView"
    android:layout_alignStart="@+id/textView"
    android:layout_below="@+id/textView"
    android:background="#917528"
    android:drawableLeft="@android:drawable/ic_menu_gallery"
    android:text="Gallery" />

<ImageView
    android:id="@+id/uploadImage"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_below="@+id/button_camera"
    android:layout_centerHorizontal="true" />

<TextView
    android:id="@+id/crop_hint"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/uploadImage"
    android:layout_centerHorizontal="true"
    android:text="Touch the image to crop"
    android:textStyle="italic"
    android:visibility="visible" />

<CheckBox
    android:id="@+id/checkbox_default"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button_gallery"
    android:layout_below="@+id/crop_hint"
    android:text="Checkbox"
     />

<HorizontalScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:visibility="gone">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:src="@drawable/sample" />

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:src="@drawable/sample" />

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:src="@drawable/sample" />

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:src="@drawable/sample" />
    </LinearLayout>
</HorizontalScrollView>

<RelativeLayout
    android:id="@+id/container_CropImageView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff"
    android:visibility="gone">

    <com.theartofdev.edmodo.cropper.CropImageView xmlns:custom="http://schemas.android.com/apk/res-auto"
        android:id="@+id/CropImageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        custom:fixAspectRatio="true"
        custom:guidelines="onTouch"
        custom:scaleType="fitCenter" />

    <Button
        android:id="@+id/button_crop_save"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:text="Save" />

    <Button
        android:id="@+id/button_crop_cancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:text="Cancel" />


</RelativeLayout>

</RelativeLayout>

DialogFragment File

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.wizard_upload_photo, container, false);
    Button cameraButton = (Button) rootView.findViewById(R.id.button_camera);
    Button galleryButton = (Button) rootView.findViewById(R.id.button_gallery);
    uploadImage = (ImageView) rootView.findViewById(R.id.uploadImage);
    cropHint = (TextView) rootView.findViewById(R.id.crop_hint);
    mDefault = (CheckBox) rootView.findViewById(R.id.checkbox_default);
    cameraButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            cameraImage = null;
            try {
                cameraImage = Utils.createCameraImageFile();
            } catch (IOException ex) {
                Log.d("DEBUG", "onClick: Camera file generate exception" + ex);
                Utils.showAlertDialog(getActivity(), "Error Starting the Camera Please Try Again");
            }
            // Continue only if the File was successfully created
            if (cameraImage != null) {
                cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(cameraImage));
                startActivityForResult(cameraIntent, CAPTURE_IMAGE_FROM_CAMERA);
            }
        }
    });
    galleryButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent galleryIntent = new Intent();
            galleryIntent.setType("image/*");
            galleryIntent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(galleryIntent, "Select Picture"), CAPTURE_IMAGE_FROM_GALLERY);
        }
    });


    cropImageContainer = (RelativeLayout) rootView.findViewById(R.id.container_CropImageView);
    cropImageView = (CropImageView) rootView.findViewById(R.id.CropImageView);
    mCropSave = (Button) rootView.findViewById(R.id.button_crop_save);
    mCropCancel = (Button) rootView.findViewById(R.id.button_crop_cancel);

    mDefault.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            Toast.makeText(getContext(),"Default",Toast.LENGTH_LONG).show();
        }
    });

    return rootView;
}

Logcat message

com.realeffecx.styleu E/AndroidRuntime: FATAL EXCEPTION: main
        Process: com.realeffecx.styleu, PID: 23411
        android.view.InflateException: Binary XML file line #98: Error inflating class android.widget.CheckBox
        at android.view.LayoutInflater.createView(LayoutInflater.java:626)
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
        at com.realeffecx.styleu.fragments.wizard_UploadPhoto.onCreateView(wizard_UploadPhoto.java:107)
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:1988)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1080)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1268)
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:754)
        at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1614)
        at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:633)
        at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:143)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:1177)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:1025)
        at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1545)
        at android.view.View.measure(View.java:17495)
        at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
        at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
        at android.view.View.measure(View.java:17495)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        at android.view.View.measure(View.java:17495)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
        at android.view.View.measure(View.java:17495)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2548)
        at android.view.View.measure(View.java:17495)
        at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2285)
        at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1396)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1595)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6637)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:814)
        at android.view.Choreographer.doCallbacks(Choreographer.java:614)
        at android.view.Choreographer.doFrame(Choreographer.java:584)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:800)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:146)
        at android.app.ActivityThread.main(ActivityThread.java:5602)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
        at dalvik.system.NativeStart.main(Native Method)
        Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.constructNative(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at android.view.LayoutInflater.createView(LayoutInflater.java:600)
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
        at com.realeffecx.styleu.fragments.wizard_UploadPhoto.onCreateView(wizard_UploadPhoto.java:107)
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:1988)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1080)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1268)
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:754)
        at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1614)
        at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:633)
        at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:143)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:1177)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:1025)
        at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1545)
        at android.view.View.measure(View.java:17495)
        at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
        at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
        at android.view.View.measure(View.java:17495)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        at android.view.View.measure(View.java:17495)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
        at android.view.View.measure(View.java:17495)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2548)
        at android.view.View.measure(View.java:17495)
        at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2285)
        at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1396)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1595)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6637)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:814)
        at android.view.Choreographer.doCallbacks(Choreographer.java:614)
        at android.view.Choreographer.doFrame(Choreographer.java:584)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:800)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:146)
        at android.app.ActivityThread.main(ActivityThread.java:5602)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
        at dalvik.system.NativeStart.main(Native Method)
        Cause

It's pretty much textbook stuff so i don't know what i am doing wrong. Please help me. Thanks in advance

Unnikrishnan M R
  • 224
  • 2
  • 11

3 Answers3

0

Your first view in the Relative Layout seems to be wrong as per the layout xml code above (assuming you have pasted as is from file). android:layout_below="@+id/linearLayout" should be removed. I wonder how could you compile ?

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/linearLayout"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:text="Upload Your Photo"
android:textSize="40sp" />

Just check.

pavanjoshi
  • 240
  • 2
  • 10
0

Finally i have solved the issue. The Inflate Exception was arising from InvokeTargetException which in turn was due to ResourceNotFoundException. The error was in the android support library 23.2. I don't know clearly why but google has renamed and removed some xml files from their support library and are using Vectors instead of PNG's. The error can be solved simply by reverting to the previous library (23.1.1) or using AppCombatRadioButton or AppCombatCheckBox instead of RadioButton and CheckBox respectively. If anyone else is facing the same issue you can check out this issue opened in google code https://code.google.com/p/android/issues/detail?id=202144

Unnikrishnan M R
  • 224
  • 2
  • 11
0

In my case it was an invalid attribute:

android:textSize="?android:attr/textAppearanceSmall"

After removing it all worked fine. I guess the error should be more explanatory.

Bugs
  • 4,491
  • 9
  • 32
  • 41
user2451436
  • 1
  • 1
  • 1