मेरे पास एक कोड मॉड्यूल है जो नेविगेशन ड्रॉअर के साथ व्यूप्ले को लागू करता है, हालांकि, जब मैं कोड चलाता हूं तो मुझे निम्नलिखित त्रुटि मिलती है
01-26 09:20:02.958: D/AndroidRuntime(18779): Shutting down VM
01-26 09:20:02.959: E/AndroidRuntime(18779): FATAL EXCEPTION: main
01-26 09:20:02.959: E/AndroidRuntime(18779): Process: com.example.tabwithslidingdrawer, PID: 18779
01-26 09:20:02.959: E/AndroidRuntime(18779): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.tabwithslidingdrawer/com.example.tabwithslidingdrawer.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2314)
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2388)
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.app.ActivityThread.access$800(ActivityThread.java:148)
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292)
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.os.Handler.dispatchMessage(Handler.java:102)
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.os.Looper.loop(Looper.java:135)
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.app.ActivityThread.main(ActivityThread.java:5312)
01-26 09:20:02.959: E/AndroidRuntime(18779): at java.lang.reflect.Method.invoke(Native Method)
01-26 09:20:02.959: E/AndroidRuntime(18779): at java.lang.reflect.Method.invoke(Method.java:372)
01-26 09:20:02.959: E/AndroidRuntime(18779): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
01-26 09:20:02.959: E/AndroidRuntime(18779): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)
01-26 09:20:02.959: E/AndroidRuntime(18779): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference
01-26 09:20:02.959: E/AndroidRuntime(18779): at com.example.tabwithslidingdrawer.MainActivity.onCreate(MainActivity.java:95)
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.app.Activity.performCreate(Activity.java:5953)
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1128)
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267)
01-26 09:20:02.959: E/AndroidRuntime(18779): ... 10 more
09:20:02.959: E/AndroidRuntime(18779): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference 01-26 09:20:02.959: E/AndroidRuntime(18779): at com.example.tabwithslidingdrawer.MainActivity.onCreate(MainActivity.java:95)
इस लाइन को इंगित करता है
// enabling action bar app icon and behaving it as a toggle button
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
संपूर्ण कोड http://pastebin.com/u1K72fr7
मेरी अभिव्यक्ति
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.tabwithslidingdrawer"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Tabwithpager" >
<activity
android:name="com.example.tabwithslidingdrawer.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
एंड्रॉयड: विषय = "@ शैली / Theme.Tabwithpager"
कोड http://pastebin.com/EFQLzRej
================================================== ================ संपादित करें / अद्यतन करें:
मैंने इससे क्या सीखा
जब भी ऐसी कोई त्रुटि होती है
1. जांचें कि किस तरह की गतिविधि का उपयोग किया जा रहा है, क्या यह एक सरल android.app गतिविधि या एक AppCompatActivity या एक ActionBarActivity और इतने पर है।
2. जांचें कि क्या आपकी गतिविधि का प्रकार जो बढ़ाया गया है, वह हमवतन श्रेणी के अंतर्गत आता है
उदाहरण android.app आधारित गतिविधि / फ्रैगमेंट गैर appCompat प्रकार हैं, जबकि android.support.v4.app.Fragment या android.support.v4.app.ActivityCompat appCompat आधारित हैं
अगर यह appCompat के अंतर्गत आता है, तो हम android.app प्रकारों के लिए getSupportActionBar () का उपयोग करते हैं, हम getActionBar () का उपयोग कर सकते हैं
3. प्रकट फ़ाइल में प्रश्न में गतिविधि के लिए लागू विषय की जाँच करें
उदाहरण: मैनिफ़ेस्ट फ़ाइल में यदि थीम लागू की गई है, तो कहें: Android: theme = "@ android: style / Theme.Holo.Dialog" getActionBar () काम करेगा
लेकिन अगर मेनिफेस्ट में गतिविधि के लिए लागू किया गया विषय Android के अनुसार है: theme = "@ style / Theme.AppCompat.Light" तो आपको getSupportActionBar () का उपयोग करना होगा
supportActionBarआपके विषय के साथ (शून्य नहीं) प्राप्त कर सकता हूं । आप सभी की जगह किया था getActionBarके साथ getSupportActionBar? 1 और बात, आपको अपनी नई त्रुटि लॉग को अपडेट करना चाहिए।
getActionBar()अपने में उपयोग करते हैं MainActivity... इसे जांचें और इसे बदलें getSupportActionBar।
getSupportActionbar()?