Android Studio下2个Java文件缺包、类、变量及方法报错问题求解
问题解决方案
所有包缺失、类找不到、方法重写报错的问题基本都是两个核心原因触发的连锁反应:一是项目未引入RecyclerView相关依赖,二是同时混用了旧Support库和AndroidX库,依赖体系不匹配。
以下是分步解决步骤:
步骤1:统一依赖体系(二选一即可,推荐优先选择迁移AndroidX)
方案1:完全迁移到AndroidX(适配新版本Android Studio的首选方案)
- 确认项目级
build.gradle中的compileSdkVersion≥ 28 - 打开项目根目录下的
gradle.properties文件,添加两行配置:
android.useAndroidX=true android.enableJetifier=true
- 把
ListarPessoas.java文件里的旧Support库导入替换为AndroidX版本:
将import android.support.v7.app.AppCompatActivity;替换为import androidx.appcompat.app.AppCompatActivity; - 打开app模块下的
build.gradle,在dependencies代码块中添加RecyclerView依赖:
dependencies { // 保留原有其他依赖,新增下面一行即可 implementation 'androidx.recyclerview:recyclerview:1.3.2' }
方案2:不迁移AndroidX,统一使用旧Support库
- 把两个Java文件中所有
androidx.开头的导入语句全部替换为Support版本:
// 替换前 import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.annotation.NonNull; // 替换后 import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.annotation.NonNull;
- 打开app模块下的
build.gradle,在dependencies代码块中添加旧版RecyclerView依赖:
implementation 'com.android.support:recyclerview-v7:28.0.0'
步骤2:修复剩余非依赖类错误
- 找不到
recyclerView变量错误:打开activity_listar_pessoas.xml布局文件,确认RecyclerView控件的android:id属性值为@+id/recyclerView - ViewHolder中
findViewById报错:漏写了itemView前缀,修改ViewHolder构造方法代码如下:
public ViewHolder(@NonNull View itemView) { super(itemView); // 所有findViewById调用前都需要加itemView. textId_pessoa = itemView.findViewById(R.id.textId_pessoa); editNome_pessoa = itemView.findViewById(R.id.editNome_pessoa); editEmail_pessoa = itemView.findViewById(R.id.editEmail_pessoa); editTelefone_pessoa = itemView.findViewById(R.id.editTelefone_pessoa); button_delete = itemView.findViewById(R.id.button_delete_pessoa); button_update = itemView.findViewById(R.id.button_update_pessoa); }
- 确认项目中已存在
Pessoa.java实体类、DatabaseHelperClass.java数据库工具类,如缺失需要补充对应实现。
步骤3:同步依赖重建项目
修改完成后点击Android Studio顶部的「Sync Project with Gradle Files」按钮同步依赖,再点击顶部菜单栏「Build」→「Clean Project」→「Rebuild Project」即可消除所有报错。
内容的提问来源于stack exchange,提问作者Javlo
相关产品推荐
相关产品推荐

