Question

My app was working great with Android 4.0+ now i want to make it compatible with older versions, i imported the complete support library extended the activity to ActionBarActivity and then changed everything to getSupportActionBar and used the app.v4.Fragment. Eclipse is not showing any error in the code but when i start the app it shows the SplashScreen and then FC.

03-31 13:47:25.104: E/AndroidRuntime(25142): FATAL EXCEPTION: main
03-31 13:47:25.104: E/AndroidRuntime(25142): android.view.InflateException: Binary XML file line #1: Error inflating class <unknown>
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.view.LayoutInflater.createView(LayoutInflater.java:518)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:332)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.widget.AbsListView.obtainView(AbsListView.java:1456)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.widget.ListView.makeAndAddView(ListView.java:1821)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.widget.ListView.fillDown(ListView.java:686)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.widget.ListView.fillFromTop(ListView.java:754)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.widget.ListView.layoutChildren(ListView.java:1656)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.widget.AbsListView.onLayout(AbsListView.java:1286)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.view.View.layout(View.java:7184)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:714)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.view.View.layout(View.java:7184)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.view.View.layout(View.java:7184)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.view.View.layout(View.java:7184)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.view.View.layout(View.java:7184)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.view.View.layout(View.java:7184)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.view.ViewRoot.performTraversals(ViewRoot.java:1143)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.view.ViewRoot.handleMessage(ViewRoot.java:1862)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.os.Handler.dispatchMessage(Handler.java:99)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.os.Looper.loop(Looper.java:130)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.app.ActivityThread.main(ActivityThread.java:3806)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at java.lang.reflect.Method.invokeNative(Native Method)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at java.lang.reflect.Method.invoke(Method.java:507)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at dalvik.system.NativeStart.main(Native Method)
03-31 13:47:25.104: E/AndroidRuntime(25142): Caused by: java.lang.reflect.InvocationTargetException
03-31 13:47:25.104: E/AndroidRuntime(25142):    at java.lang.reflect.Constructor.constructNative(Native Method)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.view.LayoutInflater.createView(LayoutInflater.java:505)
03-31 13:47:25.104: E/AndroidRuntime(25142):    ... 35 more
03-31 13:47:25.104: E/AndroidRuntime(25142): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x10102fd a=-1}
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.content.res.Resources.loadDrawable(Resources.java:1719)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.view.View.<init>(View.java:1951)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.widget.TextView.<init>(TextView.java:453)
03-31 13:47:25.104: E/AndroidRuntime(25142):    at android.widget.TextView.<init>(TextView.java:446)
03-31 13:47:25.104: E/AndroidRuntime(25142):    ... 38 more

This is the XML of the main activity:

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ffffff">
             <ListView
        android:id="@+id/listview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="5dip"/>

        </FrameLayout>

    <ListView
        android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:background="#069"/>
</android.support.v4.widget.DrawerLayout>

This is the code for the Adapter

public class ListViewAdapter extends BaseAdapter {

    // Declare Variables
    Context context;
    LayoutInflater inflater;
    ArrayList<HashMap<String, String>> data;
    ImageLoader imageLoader;
    HashMap<String, String> resultp = new HashMap<String, String>();
    String coment;
    public String img;
    public int imga;
    public ListViewAdapter(Context context,
            ArrayList<HashMap<String, String>> arraylist) {
        this.context = context;
        data = arraylist;
        imageLoader = new ImageLoader(context);
    }

    @Override
    public int getCount() {
        return data.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    public void addItems(ArrayList<HashMap<String, String>> arraylist) {
        if(data != null) {
             data.addAll(arraylist);  
        } else {
             data = arraylist;
        }
    }

    public View getView(final int position, View convertView, ViewGroup parent) {
        // Declare Variables
        TextView quien;
        ImageView imagen;
        TextView reporte;
        TextView fecha;
        VideoView video;
        ImageView imgs;

        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View itemView = inflater.inflate(R.layout.listview_item, parent, false);
        // Get the position
        resultp = data.get(position);

        // Locate the TextViews in listview_item.xml
        // Locate the ImageView in listview_item.xml
        imagen = (ImageView) itemView.findViewById(R.id.imagen);
        fecha = (TextView) itemView.findViewById(R.id.fecha);
        quien = (TextView) itemView.findViewById(R.id.quien);
        reporte = (TextView) itemView.findViewById(R.id.reporte);
        video = (VideoView) itemView.findViewById(R.id.videos);
        imgs = (ImageView) itemView.findViewById(R.id.imgs);
        // Capture position and set results to the TextViews
     // Capture position and set results to the ImageView
        // Passes flag images URL into ImageLoader.class
        imageLoader.DisplayImage(resultp.get(MainActivity.IMAGEN), imagen);
        fecha.setText(resultp.get(MainActivity.FECHA));
        reporte.setText(resultp.get(MainActivity.CONTENIDOPOST));
        quien.setText(resultp.get(MainActivity.QUIEN));

        if (resultp.get(MainActivity.VIDEO).length() != 0){
            imageLoader.DisplayImage(resultp.get(MainActivity.IMGS), imgs);

            final String videoplayer = resultp.get(MainActivity.VIDEO);

            if (resultp.get(MainActivity.CONTENIDOPOST).length() == 0){
                reporte.setVisibility(View.GONE);
            }

            imgs.setVisibility(View.VISIBLE);

            imgs.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(videoplayer));
                    context.startActivity(intent);
                }
            });

        }

        if (resultp.get(MainActivity.IMGS).length() != 0 && resultp.get(MainActivity.VIDEO).length() <= 5){
            imageLoader.DisplayImage(resultp.get(MainActivity.IMGS), imgs);
            final String imagenview = resultp.get(MainActivity.IMGS);
            imgs.setVisibility(View.VISIBLE);
            if (resultp.get(MainActivity.CONTENIDOPOST).length() == 0){
                reporte.setVisibility(View.GONE);
            }
            imgs.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    /*
                    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                    intent.setDataAndType(Uri.parse(imagenview), "image/*");
                    context.startActivity(intent);
                    */
                    Intent intentBrowseFiles = new Intent(Intent.ACTION_VIEW);
                    intentBrowseFiles.setDataAndType(Uri.parse(imagenview), "image/*");
                    //intentBrowseFiles.setFlag(Intent.FLAG_ACTIVITY_NEW_TASK);
                    context.startActivity(intentBrowseFiles);

                }
            });

        }


        // Capture ListView item click

        itemView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                // Get the position
                resultp = data.get(position);
                    Intent intent = new Intent(context, MenuContextual.class);
                    // Pass all data rank

                    //intent.putExtra("imagen", resultp.get(MainActivity.IMAGEN));

                    intent.putExtra("quien_id", resultp.get(MainActivity.QUIEN_ID));

                    intent.putExtra("reporte", resultp.get(MainActivity.CONTENIDOPOST));

                    intent.putExtra("quien", resultp.get(MainActivity.QUIEN));

                    intent.putExtra("fecha", resultp.get(MainActivity.FECHA));
                    // Start SingleItemView Class
                    context.startActivity(intent);



            }
        });

        return itemView;
    }
}
Was it helpful?

Solution

"Then you add ActionBarCompat to google's Navigation Drawer sample do not forget change native methods to SupportMethods: getActionBar() -> getSupportActionBar(); invalidateOptionsMenu() -> supportInvalidateOptionsMenu(); ..."

did you changed the bold text also ? :)

try read this topic : android.view.InflateException: Binary XML file line #1: Error inflating class <unknown>

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top