关于活动类报错Cannot resolve symbol AppCompatActivity 的解决方法

作者描述了在升级到AndroidStudio4.1.1后,遇到所有活动类文件红色无法编译的问题,通过查找解决CannotresolvesymbolAppCompatActivity的错误,发现是缺少appcompat依赖。通过修改build.gradle文件并同步解决了这个问题。

       今天恰好要修改一个Android APP,使用的是android studio 4.1.1版本,但是打开该工程后,发现活动类java文件红色一片,这要是股市飘红估计会很高兴,可在代码中出现飘红不是令人高兴的事情,不是一个文件这样,而是所有程序活动类文件都这样。心里想着这也就改个配置参数啥的吧。因为是所有的活动类均这样,肯定是配置文件或配置参数的问题,一开始就是朝着这个方向去解决问题。我心里想这个app可能是用以前的android studio的版本打开原因吧?于是我新创建了一个工程,然后就实现一个checkbox的小案例,也是这样的。

        把错误“Cannot resolve symbol AppCompatActivity”信息输入度娘后,发现遇见此问题的还真不少呢?我呢?也就赖一点,开始照着别人的方法去改改,可是试过了很多方法都不行。试了很多办法,包括:进入.idea,把东西全选删除掉、File → Invalidate Caches/Restart ......

        最后只能自己想辙了。

首先,尝试去修改项目中的build.gradle,找到以下dependencies{}部分,在该部分中最后行新增如下行

implementation 'androidx.appcompat:appcompat:1.3.0'

,如下图所示:

其次,点击窗口上面的“Sync Now”按钮后,会自动进行同步,如下图所示:

等待同步完成后,就解决了程序代码报红的问题,如下图所示解决后的代码截图:

package com.videogo.ui.login; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageButton; import android.widget.TextView; import com.videogo.openapi.EZOpenSDK; import ezviz.ezopensdk.R; import androidx.appcompat.app.AppCompatActivity; import java.util.Calendar; import java.util.Locale; public class FanHui extends AppCompatActivity { private static final String TAG = "EZPreview"; private String mAppKey; private String mDeviceSerial; private String mVerifyCode; private String mAccessToken; private int mCameraNo; private TextView mDateTextView; private int mSelectedYear, mSelectedMonth, mSelectedDay; private static final String KEY_APPKEY = "appkey"; private static final String KEY_SERIAL = "serial"; private static final String KEY_VERIFYCODE = "VerifyCode"; private static final String KEY_ACCESSTOKEN = "accessToken"; private static final String KEY_CAMERANO = "cameraNo"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ez_playback_list_page); extractParametersFromIntent(); final Calendar calendar = Calendar.getInstance(); mSelectedYear = calendar.get(Calendar.YEAR); mSelectedMonth = calendar.get(Calendar.MONTH); mSelectedDay = calendar.get(Calendar.DAY_OF_MONTH); // 设置日期显示模块 setupDatePicker(); View fanHui = findViewById(R.id.fanhui); fanHui.setOnClickListener(v -> finish()); Button huifangBtn = findViewById(R.id.fanhui); huifangBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 创建Intent跳转到FanHui活动 Intent intent = new Intent(FanHui.this, MainActivity.class); // 传递必要参数(可选) intent.putExtra("deviceSerial", mDeviceSerial); intent.putExtra("cameraNo", mCameraNo); intent.putExtra("accessToken", mAccessToken); intent.putExtra("appkey", mAppKey); intent.putExtra("verifyCode", mVerifyCode); startActivity(intent); } }); } private void setupDatePicker() { // 获取标题栏 TitleBar titleBar = findViewById(R.id.title); // 创建日期显示布局 View datePickerLayout = getLayoutInflater().inflate(R.layout.date_picker_layout, titleBar, false); // 初始化日期文本和按钮 mDateTextView = datePickerLayout.findViewById(R.id.date_text); ImageButton datePickerButton = datePickerLayout.findViewById(R.id.date_picker_button); // 设置初始日期显示 updateDateDisplay(); // 设置日期选择按钮点击事件 datePickerButton.setOnClickListener(v -> showDatePickerDialog()); // 将日期布局添加到标题栏 titleBar.addView(datePickerLayout); } private void updateDateDisplay() { // 月份需要+1(因为Calendar.MONTH从0开始) String formattedDate = String.format(Locale.getDefault(), "%d年%02d月%02d日", mSelectedYear, mSelectedMonth + 1, mSelectedDay); mDateTextView.setText(formattedDate); } private void showDatePickerDialog() { DatePickerDialog datePickerDialog = new DatePickerDialog( this, (view, year, month, dayOfMonth) -> { mSelectedYear = year; mSelectedMonth = month; mSelectedDay = dayOfMonth; updateDateDisplay(); }, mSelectedYear, mSelectedMonth, mSelectedDay ); datePickerDialog.show(); } private void extractParametersFromIntent() { Bundle extras = getIntent().getExtras(); if (extras != null) { mAppKey = extras.getString(KEY_APPKEY, ""); mDeviceSerial = extras.getString(KEY_SERIAL, ""); mVerifyCode = extras.getString(KEY_VERIFYCODE, ""); mAccessToken = extras.getString(KEY_ACCESSTOKEN, ""); mCameraNo = extras.getInt(KEY_CAMERANO, 0); Log.d(TAG, "Received parameters:"); Log.d(TAG, "AppKey: " + mAppKey); Log.d(TAG, "DeviceSerial: " + mDeviceSerial); Log.d(TAG, "VerifyCode: " + mVerifyCode); Log.d(TAG, "AccessToken: " + mAccessToken); Log.d(TAG, "CameraNo: " + mCameraNo); } else { Log.e(TAG, "No parameters received from intent"); // 如果没有参数,可以显示错误信息并退出 // finish(); } } } 解决上述代码报错Cannot resolve symbol 'TitleBar' Cannot resolve symbol 'date_picker_layout' Cannot resolve method 'addView(android.view.View)' Cannot resolve symbol 'DatePickerDialog' Cannot resolve symbol 'DatePickerDialog' Incompatible types. Found: '<lambda parameter>', required: 'int' Incompatible types. Found: '<lambda parameter>', required: 'int' Incompatible types. Found: '<lambda parameter>', required: 'int' Cannot resolve method 'show()'
最新发布
06-26
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值