将android studio升级到最新版本后,有部分代码报错,找不到原因和解决方案:
1、“setContentView(R.layout.activity_login) ”中的“setContentView”是红色;
2、AndroidManifest.xml的“android:name=".LoginActivity"”代码中“".LoginActivity"”下面有波浪红线;
3、“_login=(ImageButton) findViewById(R.id.login)”代码的“findViewById”变成了红色;
4、“final SharedPreferences sp = getSharedPreferences("ruiyun", MODE_PRIVATE)”的“getSharedPreferences”变成了红色;
5、“Context context = this.getApplicationContext()”的“getApplicationContext”变成了红色;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login); // setContentView红色
_login=(ImageButton) findViewById(R.id.login); //findViewById红色
// 获得SharedPreferences,并创建文件名称为"mrsoft"
final SharedPreferences sp = getSharedPreferences("ruiyun", MODE_PRIVATE); //getSharedPreferences红色;
// 获得Editor对象,用于存储用户名与密码信息
final SharedPreferences.Editor editor = sp.edit();
usercode=(EditText) findViewById(R.id.usercode); //findViewById红色
username=(EditText) findViewById(R.id.username); //findViewById红色
password=(EditText) findViewById(R.id.password); //findViewById红色
materialCodeName=(TextView ) findViewById(R.id.materialCodeName); //findViewById红色
ceshi=(TextView ) findViewById(R.id.ceshi); //findViewById红色
register=(Button)findViewById(R.id.register); //findViewById红色
help=(Button) findViewById(R.id.help); //findViewById红色
_Mac=MacUtil.getMac(LoginActivity.this); //LoginActivity.this下面有红色波浪线
Edition=false;
if (sp.getString("userdesc", _usercode) != null &&
sp.getString("username", _username) != null &&
sp.getString("password", _password) != null) {
usercode.setText(sp.getString("userdesc", _usercode));
username.setText(sp.getString("username", _username));
password.setText(sp.getString("password", _password));
}else {
usercode.setText("");
username.setText("");
password.setText("");
Toast.makeText(LoginActivity.this, "您未在本地注册,需要输入用户名和密码方可登录!" +"如果您还没有注册,请转入注册新用户进行注册",Toast.LENGTH_SHORT).show(); //LoginActivity.this, "您未在本地注册,需要输入用户名和密码方可登录!" +"如果您还没有注册,请转入注册新用户进行注册",Toast.LENGTH_SHORT)下面有红色波浪线
}
/*
*在传递用户名时同时传递WIFI设备的MAC地址,让程序同时验证WIFI设备的MAC地址,从而判断是否允许该设备接入,这是一种用于手机安全的方案
* tv.setText("ip "+getWifiIp() + " " +getWiFiName()+ " " +getWifiMacAddress());
*
*/
Context context = this.getApplicationContext(); //getApplicationContext红色
//ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);//获取系统的连接服务
meth1="路由器MAC地址:"+getRouterMac(context)+";路由器名:"+getWifiName(context)+";客户端MAC地址:"+_Mac;
ceshi.setText(meth1);
ExecutorService singPool = Executors.newSingleThreadExecutor();
WebServicesEdition();
singPool.shutdown();
//获取显示器分辨率
DisplayMetrics outMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(outMetrics); //getWindowManager红色
int widthPixels = outMetrics.widthPixels;
int heightPixels = outMetrics.heightPixels;
Log.i(TAG, "widthPixels = " + widthPixels + ",heightPixels = " + heightPixels);
gradle重新编译一下试试,或者运行一下,更新版本以后这些包可能加载不到位导致的
是不是studio更新过呀,我之前更新了就出现了楼主问题,回退版本就好了
这里总结一下解决办法:
一、方法一:自带清除缓存
点击AndroidStudio菜单File -> Invalidate Caches/Restar… ,在弹出的对话框中点击Invalidate and Restar 。等待AS清理并自动重启。
二、方法二:删除user目录下.AndroidStudio中的文件
关闭AndroidStudio,进入C:\Users\xUser.AndroidStudio3.3(3.3为当前AS版本号),删除除了config以外的文件。重新打开AndroidStudio会自动Sync,等待同步完成。
三、方法三:删除user目录下.gradle
关闭AndroidStudio,删除C:\Users\xUser.gradle。重新打开AndroidStudio会自动Sync,等待同步完成。
注意:删除该文件夹所有的classpath、gradle、compile、implementation等,都需要重新从网上同步。
四、方法四:删除工程目录下.gradle、.idea
关闭AndroidStudio,进入工程根目录,删除.gradle、.idea两个文件夹。重新打开AndroidStudio会自动Sync,等待同步完成。
五、方法五:如果前四种方法都不能解决你的问题,那么还有一种解决办法
前四种方法全试用,都还是报红,但可以正常编译、安装和运行。那就有可能是你当前AndroidStudio版本太低所致,升级你的AS版本。