java - ActionBar 空指针异常

标签 java android

我想在我的应用程序中使用 ActionBarSherlock。当我调用getSupportActionBar()时我得到一个NullPointerException ;我已经将 ActionBarSherlock 库导入到我的项目中。

这是我的 Java 类:

public class ProfileActivity extends SherlockActivity  {


    @Override
            public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
                com.actionbarsherlock.view.MenuInflater inflater = this.getSupportMenuInflater();
                inflater.inflate(R.menu.mainmenu, menu);
                return true;
            }

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

                getWindow().requestFeature(Window.FEATURE_ACTION_BAR);

                setContentView(R.layout.profile_page);



                getSupportActionBar().setTitle("Example!");  //nullpointerException


              }
        }

}

还有我的 list 文件:

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

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true"/>



    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="10" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.CAMERA"/>

    <permission
        android:name="com.vogella.android.locationapi.maps.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <!-- The following two permissions are not required to use
     Google Maps Android API v2, but are recommended. -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
        <uses-permission android:name="com.example.sal.permission.MAPS_RECEIVE"/>
        <uses-permission android:name="android.permission.READ_PHONE_STATE"/>




    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" 
        android:name=".FriendPickerApplication">



        <activity
            android:name="com.example.sal.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>

         <!--  Entry for RegisterActivity.class -->
        <activity android:name=".RegisterActivity"
                  android:label="Register New Account"></activity>
        <meta-data android:value="@string/app_id" android:name="com.facebook.sdk.ApplicationId"/>
        <activity android:label="@string/app_name" android:name="com.facebook.LoginActivity"></activity>
        <activity android:name=".ProfileActivity" android:label="Profile page"></activity>

        <meta-data
              android:name="com.google.android.maps.v2.API_KEY"
              android:value="AIzaSyDTVRXMTmfe3jZyAlt-87kRgqM8y4TzIto"/>


        <activity android:name="SaleMapActivity"></activity>
        <activity android:name="GroupMapActivity"></activity>
        <activity android:name="DeliverMapActivity"></activity>
        <activity android:name="PickFriendsActivity"></activity>
        <activity android:name="TabMainActivity"></activity>
        <activity android:name="itemSaleActivity"></activity>
        <activity android:name="FreindsActivity"></activity>
        <activity android:name="ExitActivity"></activity>
        <activity android:name="OneTimeDetailesScreen"></activity>

    </application>

</manifest>

谢谢。

这是我的风格:

<style name="AppTheme" parent="Theme.Sherlock.Light">
        <item name="android:windowActionBar">true</item>
    </style>

这里是 logcat:

03-24 16:20:24.325: E/AndroidRuntime(1927): Caused by: java.lang.NullPointerException
03-24 16:20:24.325: E/AndroidRuntime(1927):     at com.example.sal.ProfileActivity.onCreate(ProfileActivity.java:349)
03-24 16:20:24.325: E/AndroidRuntime(1927):     at android.app.Activity.performCreate(Activity.java:5104)
03-24 16:20:24.325: E/AndroidRuntime(1927):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
03-24 16:20:24.325: E/AndroidRuntime(1927):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
03-24 16:20:24.325: E/AndroidRuntime(1927):     ... 23 more

最佳答案

您的应用程序主题是否扩展了 ABS 主题?

例如,按照您的指定:

android:theme="@style/AppTheme"

你的风格应该是:

<style name="AppTheme" parent="Theme.Sherlock.Light">
    ...
</style>

另请参阅this answer by Jake Wharton himself .

关于java - ActionBar 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15600783/

相关文章:

java - 使用导航选项卡打开相机

java - setimage alapha 在 android 5.1 中不起作用

javascript - onPreExecute 作为 fragment 中 webview 的预加载器

java - 无论如何,Idea 中是否可以识别同一模块中 lombok 生成的 getter/setter

java - 并发集合的contain-like方法没用吗?

android - 如何使用 http 将 Android 中的文件从移动设备发送到服务器?

android - 点燃火 : Minimizing the slim gray bar at the bottom of the screen?

android - 在 AlertDialog 中调整 EditText 的大小

java - spring中使用ajax过滤动态数据

android - NativeScript:扩充 tns-platform-declarations