Android Studio 3.1.2中setSupportActionBar报错:无法找到符号的解决方法
这个问题我熟得很,碰到过好多次啦!error: cannot find symbol this.setSupportActionBar(toolbar) 本质是你的Activity没正确关联AppCompat相关的类和依赖,导致找不到这个方法。给你一步步搞定:
解决步骤
1. 把Activity的父类改成AppCompatActivity
先打开你的Activity代码,看看类定义是不是继承了AppCompatActivity——这是关键!如果之前继承的是原生Activity或者旧版的ActionBarActivity,赶紧换掉:
// 正确的继承方式(AndroidX版本) public class MainActivity extends androidx.appcompat.app.AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); // 现在就能找到这个方法啦 } }
别忘了导入对应的包,AndroidX是import androidx.appcompat.app.AppCompatActivity;,如果还在用旧support库就是import android.support.v7.app.AppCompatActivity;。
2. 给build.gradle加上AppCompat依赖
打开你贴的那个App模块build.gradle,找到dependencies块,添加AppCompat的依赖。
- 如果你已经迁移到AndroidX:
dependencies { // 保留你原来的其他依赖,加上这行 implementation 'androidx.appcompat:appcompat:1.6.1' // 用最新稳定版就行 }
- 要是还在用旧support库(对应你的compileSdkVersion 27):
dependencies { // 其他依赖不变,添加这行 implementation 'com.android.support:appcompat-v7:27.1.1' // 版本号要和compileSdkVersion匹配 }
3. 同步+清理重建项目
加完依赖后,点击Android Studio右上角的Sync Now同步gradle。然后去菜单栏点Build -> Clean Project,再Build -> Rebuild Project——缓存坑太多,这么做能彻底解决残留问题。
额外要注意的小细节
- 布局里的Toolbar也要用AppCompat版本的,别用原生的:
旧support库就用<!-- AndroidX版本的Toolbar --> <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" />android.support.v7.widget.Toolbar。 - 如果是AndroidX项目,检查下
gradle.properties里有没有开启AndroidX:android.useAndroidX=true android.enableJetifier=true
内容的提问来源于stack exchange,提问作者Praveen
相关产品推荐
相关产品推荐

