androideclipsebluestackscrash

Android app won't start in bluestack


I'm trying to follow this tutorial http://www.androidhive.info/2015/04/android-getting-started-with-material-design/. I tested the app when I reached step 13 and it work fine but when I reached steps 23 Navigation Drawer I faced a problem which is

 android.support.v7.widget.RecyclerView cannot be instantiated

Upon reading reviews from other sites about this problem I concluded that I have to set the API level 22 on the preview panel but since my ADT is not compatible with that I tried to update it (my ADT) and everything went well until I've reached steps 23 where I well now try to test my app if it is running base on the tutorial. Much to my dismay the ADT was

unable to bind xxxx to DDMS

I tried to fixed the error again by following other instructions from various sites including this one. I added the 127.0.0.1 localhost from windows host file since there was none except that it was just commented. I even tried using this code adb kill-server and adb start-server from cmd. Also I went to window -> preference -> Android -> DDMS and there I tried to put the value 8601 on Base local debugger port and check the use ADBHOST and added the values 127.0.0.1. I did each of them one by one but unfortunately the error persist.

The problem I'm facing is that the app won't start or run on bluestack. I tried running my other app project to see if they happens to not run as well but it seems that they are running smoothly and no errors or crash on bluestack so I figured it has something to do with my projects that I'm following on the above mentioned tutorial but I don't know how to figure it out since all my code are fine and has no red mark or error but they just have warnings which seems ok to me.

Here is my Manifest.xml (you can see the rest of the code on the above tutorial just up to steps 23)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.eureka4.studentdictionary"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/MyMaterialTheme" >
        <activity
            android:name=".activity.MainActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

My SDK is already up to date with the latest version being 23 and so is my support library being 23 as well.

And here is my LogCat I've added everything from verbose to error:

02-21 18:56:22.596: W/dalvikvm(15690): VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
02-21 18:56:22.596: I/dalvikvm(15690): Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested
02-21 18:56:22.596: W/dalvikvm(15690): VFY: unable to resolve interface method 16375: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
02-21 18:56:22.596: D/dalvikvm(15690): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:22.596: I/dalvikvm(15690): Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode
02-21 18:56:22.596: W/dalvikvm(15690): VFY: unable to resolve interface method 16379: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
02-21 18:56:22.596: D/dalvikvm(15690): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:22.656: I/AppCompatViewInflater(15690): app:theme is now deprecated. Please move to using android:theme instead.
02-21 18:56:22.656: I/dalvikvm(15690): Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
02-21 18:56:22.656: W/dalvikvm(15690): VFY: unable to resolve virtual method 406: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
02-21 18:56:22.656: D/dalvikvm(15690): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:22.656: I/dalvikvm(15690): Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
02-21 18:56:22.656: W/dalvikvm(15690): VFY: unable to resolve virtual method 428: Landroid/content/res/TypedArray;.getType (I)I
02-21 18:56:22.656: D/dalvikvm(15690): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:22.706: D/AndroidRuntime(15690): Shutting down VM
02-21 18:56:22.706: W/dalvikvm(15690): threadid=1: thread exiting with uncaught exception (group=0x55e05b20)
02-21 18:56:22.706: D/AndroidRuntime(15690): procName from cmdline: com.eureka4.studentdictionary
02-21 18:56:22.706: E/AndroidRuntime(15690): in writeCrashedAppName, pkgName :com.eureka4.studentdictionary
02-21 18:56:22.746: I/Process(15690): Sending signal. PID: 15690 SIG: 9
02-21 18:56:22.936: W/dalvikvm(15708): VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
02-21 18:56:22.936: I/dalvikvm(15708): Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested
02-21 18:56:22.936: W/dalvikvm(15708): VFY: unable to resolve interface method 16375: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
02-21 18:56:22.936: D/dalvikvm(15708): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:22.936: I/dalvikvm(15708): Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode
02-21 18:56:22.936: W/dalvikvm(15708): VFY: unable to resolve interface method 16379: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
02-21 18:56:22.936: D/dalvikvm(15708): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:22.966: I/AppCompatViewInflater(15708): app:theme is now deprecated. Please move to using android:theme instead.
02-21 18:56:22.966: I/dalvikvm(15708): Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
02-21 18:56:22.966: W/dalvikvm(15708): VFY: unable to resolve virtual method 406: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
02-21 18:56:22.976: D/dalvikvm(15708): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:22.976: I/dalvikvm(15708): Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
02-21 18:56:22.976: W/dalvikvm(15708): VFY: unable to resolve virtual method 428: Landroid/content/res/TypedArray;.getType (I)I
02-21 18:56:22.976: D/dalvikvm(15708): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:42.506: W/dalvikvm(15781): VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
02-21 18:56:42.506: I/dalvikvm(15781): Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested
02-21 18:56:42.506: W/dalvikvm(15781): VFY: unable to resolve interface method 16375: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
02-21 18:56:42.506: D/dalvikvm(15781): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:42.506: I/dalvikvm(15781): Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode
02-21 18:56:42.516: W/dalvikvm(15781): VFY: unable to resolve interface method 16379: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
02-21 18:56:42.516: D/dalvikvm(15781): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:42.546: I/AppCompatViewInflater(15781): app:theme is now deprecated. Please move to using android:theme instead.
02-21 18:56:42.556: I/dalvikvm(15781): Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
02-21 18:56:42.556: W/dalvikvm(15781): VFY: unable to resolve virtual method 406: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
02-21 18:56:42.556: D/dalvikvm(15781): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:42.556: I/dalvikvm(15781): Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
02-21 18:56:42.556: W/dalvikvm(15781): VFY: unable to resolve virtual method 428: Landroid/content/res/TypedArray;.getType (I)I
02-21 18:56:42.556: D/dalvikvm(15781): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:42.586: D/AndroidRuntime(15781): Shutting down VM
02-21 18:56:42.596: W/dalvikvm(15781): threadid=1: thread exiting with uncaught exception (group=0x55e05b20)
02-21 18:56:42.596: I/Process(15781): Sending signal. PID: 15781 SIG: 9
02-21 18:56:42.596: D/AndroidRuntime(15781): procName from cmdline: com.eureka4.studentdictionary
02-21 18:56:42.596: E/AndroidRuntime(15781): in writeCrashedAppName, pkgName :com.eureka4.studentdictionary
02-21 18:56:42.596: D/AndroidRuntime(15781): file written successfully with content: com.eureka4.studentdictionary StringBuffer : ;com.eureka4.studentdictionary
02-21 18:56:42.596: E/AndroidRuntime(15781): FATAL EXCEPTION: main
02-21 18:56:42.596: E/AndroidRuntime(15781): Process: com.eureka4.studentdictionary, PID: 15781
02-21 18:56:42.596: E/AndroidRuntime(15781): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.eureka4.studentdictionary/com.eureka4.studentdictionary.activity.MainActivity}: android.view.InflateException: Binary XML file line #36: Error inflating class fragment
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.app.ActivityThread.access$800(ActivityThread.java:135)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.os.Handler.dispatchMessage(Handler.java:102)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.os.Looper.loop(Looper.java:136)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.app.ActivityThread.main(ActivityThread.java:5021)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at java.lang.reflect.Method.invokeNative(Native Method)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at java.lang.reflect.Method.invoke(Method.java:515)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at dalvik.system.NativeStart.main(Native Method)
02-21 18:56:42.596: E/AndroidRuntime(15781): Caused by: android.view.InflateException: Binary XML file line #36: Error inflating class fragment
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at com.eureka4.studentdictionary.activity.MainActivity.onCreate(MainActivity.java:25)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.app.Activity.performCreate(Activity.java:5231)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1090)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
02-21 18:56:42.596: E/AndroidRuntime(15781):    ... 11 more
02-21 18:56:42.596: E/AndroidRuntime(15781): Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.eureka4.studentdictionary.FragmentDrawer: make sure class name exists, is public, and has an empty constructor that is public
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.app.Fragment.instantiate(Fragment.java:597)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.app.Fragment.instantiate(Fragment.java:561)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.app.Activity.onCreateView(Activity.java:4778)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:34)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at com.eureka4.studentdictionary.activity.MainActivity.onCreateView(MainActivity.java:1)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
02-21 18:56:42.596: E/AndroidRuntime(15781):    ... 21 more
02-21 18:56:42.596: E/AndroidRuntime(15781): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.eureka4.studentdictionary.FragmentDrawer" on path: DexPathList[[zip file "/data/app/com.eureka4.studentdictionary-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.eureka4.studentdictionary-2, /system/lib, /system/lib/arm, /data/downloads]]
02-21 18:56:42.596: E/AndroidRuntime(15781):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
02-21 18:56:42.596: E/AndroidRuntime(15781):    at android.app.Fragment.instantiate(Fragment.java:583)
02-21 18:56:42.596: E/AndroidRuntime(15781):    ... 27 more
02-21 18:56:42.756: I/AppCompatViewInflater(15794): app:theme is now deprecated. Please move to using android:theme instead.
02-21 18:56:42.756: I/dalvikvm(15794): Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
02-21 18:56:42.786: W/dalvikvm(15794): VFY: unable to resolve virtual method 406: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
02-21 18:56:42.786: D/dalvikvm(15794): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:42.786: I/dalvikvm(15794): Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
02-21 18:56:42.786: W/dalvikvm(15794): VFY: unable to resolve virtual method 428: Landroid/content/res/TypedArray;.getType (I)I
02-21 18:56:42.786: D/dalvikvm(15794): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:42.786: D/AndroidRuntime(15794): Shutting down VM
02-21 18:56:42.786: W/dalvikvm(15794): threadid=1: thread exiting with uncaught exception (group=0x55e05b20)
02-21 18:56:42.786: D/AndroidRuntime(15794): procName from cmdline: com.eureka4.studentdictionary
02-21 18:56:42.786: E/AndroidRuntime(15794): in writeCrashedAppName, pkgName :com.eureka4.studentdictionary
02-21 18:56:42.786: D/AndroidRuntime(15794): file written successfully with content: com.eureka4.studentdictionary StringBuffer : ;com.eureka4.studentdictionary

I'm using Eclipse since its CPU requirements are lighter than Android Studio. Also, my emulator is bluestack.

Here is my FragmentDrawer.java

package com.eureka4.studentdictionary;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.GestureDetector;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;

import com.eureka4.studentdictionary.R;

public class FragmentDrawer extends Fragment {

    private static String TAG = FragmentDrawer.class.getSimpleName();

    private RecyclerView recyclerView;
    private ActionBarDrawerToggle mDrawerToggle;
    private DrawerLayout mDrawerLayout;
    private NavigationDrawerAdapter adapter;
    private View containerView;
    private static String[] titles = null;
    private FragmentDrawerListener drawerListener;

    public FragmentDrawer() {

    }

    public void setDrawerListener(FragmentDrawerListener listener) {
        this.drawerListener = listener;
    }

    public static List<NavDrawerItem> getData() {
        List<NavDrawerItem> data = new ArrayList<>();


        // preparing navigation drawer items
        for (int i = 0; i < titles.length; i++) {
            NavDrawerItem navItem = new NavDrawerItem();
            navItem.setTitle(titles[i]);
            data.add(navItem);
        }
        return data;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // drawer labels
        titles = getActivity().getResources().getStringArray(R.array.nav_drawer_labels);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflating view layout
        View layout = inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
        recyclerView = (RecyclerView) layout.findViewById(R.id.drawerList);

        adapter = new NavigationDrawerAdapter(getActivity(), getData());
        recyclerView.setAdapter(adapter);
        recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
        recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getActivity(), recyclerView, new ClickListener() {
            @Override
            public void onClick(View view, int position) {
                drawerListener.onDrawerItemSelected(view, position);
                mDrawerLayout.closeDrawer(containerView);
            }

            @Override
            public void onLongClick(View view, int position) {

            }
        }));

        return layout;
    }


    public void setUp(int fragmentId, DrawerLayout drawerLayout, final Toolbar toolbar) {
        containerView = getActivity().findViewById(fragmentId);
        mDrawerLayout = drawerLayout;
        mDrawerToggle = new ActionBarDrawerToggle(getActivity(), drawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) {
            @Override
            public void onDrawerOpened(View drawerView) {
                super.onDrawerOpened(drawerView);
                getActivity().invalidateOptionsMenu();
            }

            @Override
            public void onDrawerClosed(View drawerView) {
                super.onDrawerClosed(drawerView);
                getActivity().invalidateOptionsMenu();
            }

            @Override
            public void onDrawerSlide(View drawerView, float slideOffset) {
                super.onDrawerSlide(drawerView, slideOffset);
                toolbar.setAlpha(1 - slideOffset / 2);
            }
        };

        mDrawerLayout.setDrawerListener(mDrawerToggle);
        mDrawerLayout.post(new Runnable() {
            @Override
            public void run() {
                mDrawerToggle.syncState();
            }
        });

    }

    public static interface ClickListener {
        public void onClick(View view, int position);

        public void onLongClick(View view, int position);
    }

    static class RecyclerTouchListener implements RecyclerView.OnItemTouchListener {

        private GestureDetector gestureDetector;
        private ClickListener clickListener;

        public RecyclerTouchListener(Context context, final RecyclerView recyclerView, final ClickListener clickListener) {
            this.clickListener = clickListener;
            gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
                @Override
                public boolean onSingleTapUp(MotionEvent e) {
                    return true;
                }

                @SuppressWarnings("deprecation")
                @Override
                public void onLongPress(MotionEvent e) {
                    View child = recyclerView.findChildViewUnder(e.getX(), e.getY());
                    if (child != null && clickListener != null) {
                        clickListener.onLongClick(child, recyclerView.getChildPosition(child));
                    }
                }
            });
        }

        @SuppressWarnings("deprecation")
        @Override
        public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {

            View child = rv.findChildViewUnder(e.getX(), e.getY());
            if (child != null && clickListener != null && gestureDetector.onTouchEvent(e)) {
                clickListener.onClick(child, rv.getChildPosition(child));
            }
            return false;
        }

        @Override
        public void onTouchEvent(RecyclerView rv, MotionEvent e) {
        }

        @Override
        public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

        }


    }

    public interface FragmentDrawerListener {
        public void onDrawerItemSelected(View view, int position);
    }
}

Solution

  • Your problem is:

    02-21 18:56:42.596: E/AndroidRuntime(15781): Caused by: android.view.InflateException: Binary XML file line #36: Error inflating class fragment
    

    ...Binary XML file line #36...

    Make sure your layout xml file is correct.

    And look at this:

    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.eureka4.studentdictionary.FragmentDrawer" 
    

    By the way, I recommend you to use GenyMotion instead of BlueStacks. As of 2020, using the Android emulator that comes with the Android SDK is probably the best way to test your apps.

    Make sure that all imports are correct and double-check the dependencies. Best is to remove them and add them again. Rebuild your project and try again.

    Possible solutions: