ANDROID:无法parsing方法getSupportActionBar()

这东西让我疯狂。 我似乎无法让我的应用程序正确编译。 我已经在我的应用程序中添加了支持库,通​​过复制jar文件,将它们放到libs文件夹中,右键单击并将它们添加为库。

我已经试过扩展ActionBaractivity,没有任何东西没有得到该方法的认可。

我正在使用Android Studio 0.8.2版本。

import android.app.Activity; import android.os.Bundle; import android.support.v4.widget.DrawerLayout; import android.view.Menu; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; public class mainActivity extends Activity implements AdapterView.OnItemClickListener { private DrawerLayout drawerLayout; private ListView listView; private String[] navMenuArray; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout); navMenuArray = getResources().getStringArray(R.array.navmenu); listView =(ListView) findViewById(R.id.drawerList); listView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_expandable_list_item_1, navMenuArray)); listView.setOnItemClickListener(this); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //handles what happens when an item in the menu is clicked Toast.makeText(this,navMenuArray[position]+" was selected", Toast.LENGTH_SHORT).show(); selectItem(position); } public void selectItem(int position){ listView.setItemChecked(position, true); setTitle(navMenuArray[position]); } public void setTitle(String title){ getSupportActionbar().setTitle(title); } } 

performance

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.myapp" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/Theme.AppCompat" > <activity android:name=".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> 

的build.gradle

 apply plugin: 'com.android.application' android { compileSdkVersion 20 buildToolsVersion '20.0.0' defaultConfig { applicationId "com.myapp" minSdkVersion 14 targetSdkVersion 20 versionCode 1 versionName "1.0" } compileOptions{ sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v4:18.0.+' compile 'com.android.support:appcompat-v7:18.0.+' } 

Related of "ANDROID:无法parsing方法getSupportActionBar()"

您需要将Activity更改为ActionBarActivity

public class mainActivity extends ActionBarActivity

ActionBarActivity已被弃用,所以请使用以下

public class mainActivity extends AppCompatActivity

你的活动需要扩展ActionBarActivity(它提供了getSupportActionBar)。

  1. 您已经在您的gradle文件中定义了支持库,从libs目录中删除支持库jar。

     dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v4:18.0.+' compile 'com.android.support:appcompat-v7:18.0.+' } 

    支持库已经更新,所以我会更新你的gradle依赖:编译“com.android.support:support-v4:19.1.+”

  2. Android Studio将已经通知您,但请确保您与Gradle同步。

  3. 而不是从Activity扩展,从ActionBarActivity扩展。

这很简单,只需扩展AppCompatActivity而不是Activity。

请注意,您需要更改主题以避免

例外:您需要使用Theme.AppCompat主题(或后代)进行此活动

同时使用AppCompatActivity

这将解决问题:

 import android.support.v7.widget.Toolbar;