Android新手常见问题(一)

时间:2022-02-24 04:48:28

【1】AAPT2 error: check logs for details

File->Settings->Build->Gradle一看path里有中文

最根本的原因是因为user里面的用户的文件夹是中文的,改成英文就可以了!其他解决方案不做阐述,因为建议改成英文,否则问题无穷!

win10系统以前是中文用户名改成英文方法:

  1、新建一个临时管理员账户

  2、登录管理员账户

  3、在C:\Users\暖风 改成C:\Users\nf

  4、cmd->regedit打开注册表,找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList,然后挨个文件夹打开ProfileImagePath找到你的中文名字,改成英文的就可以了

  5、注销临时管理员账户,登录以前账户,删除临时管理员账户即可!

【2】Android Studio --“Cannot resolve symbol”

Android Studio 无法识别同一个 package 里的其他类,将其显示为红色,但是 compile 没有问题。鼠标放上去后显示 “Cannot resolve symbol XXX”,重启 Android Studio,重新 sync gradle,Clean build 都没有用。 
多半是因为 Android Studio 之前发生了错误,某些 setting 出了问题。解决方法如下: 
点击菜单中的 “File” -> “Invalidate Caches / Restart”,然后点击对话框中的 “Invalidate and Restart”,清空 cache 并且重启。语法就会正确的高亮了。

【3】Android Switch constant expression required

Android Library工程写代码需要注意switch … case语句对资源id的引用,会引发编译错误:case expressions must be constant expressions

通常android工程生成的资源R.java,资源id声明如下:

public static final int main=0x7f030004;

而对于library工程,资源id声明如下:

public static int main=0x7f030004;

缺少了final,因此使用R.id 的switch … case语句会编译失败。

解决方案:将switch … case替换成if … else语句。我的后面就没有问题了,所以没有替换。

【4】Android 找不到符号

Android新手常见问题(一)

查看是不是没有导入这类的包,如果没有导入,直接alt+enter导包就可以了

【5】activity supporting action_view is not set as browsable

应该是要把这个activity设为brosable,那就多加一个category如:

<activity android:name=".ThirdActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="http"/>
</intent-filter>
</activity>
Button button1 = (Button) findViewById(R.id.button_1);
button1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com/"));//必须是http,如果是https就会报错
startActivity(intent);
}
});