Question

I have created a sliding menu.. it worked perfect, but today I wanted to add a new block.. i did it, it was perfect, but after the creation, it appeared an error which said to add a superwarning to getActionBar().setDisplayHomeAsUpEnabled(true); and getActionBar().setHomeButtonEnabled(true); ...i solved the error, but till then the app was not working anymore, and the app crashes when i had to open the sliding activity..

Here is my logcat:

02-22 13:39:12.989: E/AndroidRuntime(485): FATAL EXCEPTION: main
02-22 13:39:12.989: E/AndroidRuntime(485): java.lang.NoSuchMethodError: com.orar.cngcnasaud.MainActivity.getActionBar
02-22 13:39:12.989: E/AndroidRuntime(485):  at com.orar.cngcnasaud.MainActivity.onCreate(MainActivity.java:46)
02-22 13:39:12.989: E/AndroidRuntime(485):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-22 13:39:12.989: E/AndroidRuntime(485):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
02-22 13:39:12.989: E/AndroidRuntime(485):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
02-22 13:39:12.989: E/AndroidRuntime(485):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
02-22 13:39:12.989: E/AndroidRuntime(485):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
02-22 13:39:12.989: E/AndroidRuntime(485):  at android.os.Handler.dispatchMessage(Handler.java:99)
02-22 13:39:12.989: E/AndroidRuntime(485):  at android.os.Looper.loop(Looper.java:123)
02-22 13:39:12.989: E/AndroidRuntime(485):  at android.app.ActivityThread.main(ActivityThread.java:4627)
02-22 13:39:12.989: E/AndroidRuntime(485):  at java.lang.reflect.Method.invokeNative(Native Method)
02-22 13:39:12.989: E/AndroidRuntime(485):  at java.lang.reflect.Method.invoke(Method.java:521)
02-22 13:39:12.989: E/AndroidRuntime(485):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-22 13:39:12.989: E/AndroidRuntime(485):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-22 13:39:12.989: E/AndroidRuntime(485):  at dalvik.system.NativeStart.main(Native Method)

And if I understood properly, I would think that the problem is at the onCreate option with the 2 codes I wrote bellow.. so, here's my onCreate method:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_drawer);

        // enable ActionBar app icon to behave as action to toggle nav drawer
        getActionBar().setDisplayHomeAsUpEnabled(true);
        getActionBar().setHomeButtonEnabled(true);

        mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);

        // set a custom shadow that overlays the main content when the drawer
        // opens
        mDrawer.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);

        _initMenu();
        mDrawerToggle = new CustomActionBarDrawerToggle(this, mDrawer);
        mDrawer.setDrawerListener(mDrawerToggle);

    }

Thanks a lot !

The errors in the logcat have changed:

LOGCAT:

02-22 12:42:58.730: E/AndroidRuntime(890): FATAL EXCEPTION: main
02-22 12:42:58.730: E/AndroidRuntime(890): android.content.res.Resources$NotFoundException: String resource ID #0x0
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.content.res.Resources.getText(Resources.java:230)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.widget.TextView.setText(TextView.java:3769)
02-22 12:42:58.730: E/AndroidRuntime(890):  at com.orar.cngcnasaud.NsMenuAdapter.getView(NsMenuAdapter.java:108)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.widget.AbsListView.obtainView(AbsListView.java:2159)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.widget.ListView.makeAndAddView(ListView.java:1831)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.widget.ListView.fillDown(ListView.java:674)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.widget.ListView.fillFromTop(ListView.java:735)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.widget.ListView.layoutChildren(ListView.java:1652)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.widget.AbsListView.onLayout(AbsListView.java:1994)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.View.layout(View.java:14008)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.ViewGroup.layout(ViewGroup.java:4373)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:714)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.View.layout(View.java:14008)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.ViewGroup.layout(ViewGroup.java:4373)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.View.layout(View.java:14008)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.ViewGroup.layout(ViewGroup.java:4373)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.View.layout(View.java:14008)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.ViewGroup.layout(ViewGroup.java:4373)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.View.layout(View.java:14008)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.ViewGroup.layout(ViewGroup.java:4373)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1892)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1711)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.Choreographer.doCallbacks(Choreographer.java:562)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.Choreographer.doFrame(Choreographer.java:532)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.os.Handler.handleCallback(Handler.java:725)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.os.Handler.dispatchMessage(Handler.java:92)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.os.Looper.loop(Looper.java:137)
02-22 12:42:58.730: E/AndroidRuntime(890):  at android.app.ActivityThread.main(ActivityThread.java:5041)
02-22 12:42:58.730: E/AndroidRuntime(890):  at java.lang.reflect.Method.invokeNative(Native Method)
02-22 12:42:58.730: E/AndroidRuntime(890):  at java.lang.reflect.Method.invoke(Method.java:511)
02-22 12:42:58.730: E/AndroidRuntime(890):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-22 12:42:58.730: E/AndroidRuntime(890):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-22 12:42:58.730: E/AndroidRuntime(890):  at dalvik.system.NativeStart.main(Native Method)
Was it helpful?

Solution

getActionBar() is available only since SDK 11. So, looks like you are using the older SDK.

OTHER TIPS

If your android:minSdkVersion is set to 8 (API-8), it does not provide getActionBar() (only since API-11).

If lint warnings are suppressed, you won't get a compile time error for that.

Try http://actionbarsherlock.com/ - backward compatibility helps.

If you want to check, see if this works:

if (android.os.Build.VERSION.SDK_INT >= 11)
    getActionBar().setDisplayHomeAsUpEnabled(true);

The updated logcat shows there is an error in identifying your resource id.

See if you have the TextView (in question) in the same layout which is passed to the adapter. Or check its initialization.

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