Android-studio与Android常见的Error与坑总结
1 Error plugin
在某些情况下,比如你的android-studio没有关闭,然后你强制关机,当再次打开android-studio时,会出现这个问题
Plugin "Google Analytics Uploader" was not loaded: required plugin "Android Support" is disabled
Plugin "SDK Updater" was not loaded: required plugin "Android Support" is disabled.
Plugin "Android NDK Support" was not loaded: required plugin "Android Support" is disabled.
Plugin "Google App Indexing" was not loaded: required plugin "Android Support" is disabled.
Plugin "Google Cloud Tools For Android Studio" was not loaded: required plugin "Android Support" is disabled.
Plugin "Google Cloud Testing" was not loaded: required plugin "Android Support" is disabled
Plugin "Google Services" was not loaded: required plugin "Android Support" is disabled.
解决方法:
点击File下面的Settings(快捷键 alt+ctrl+s)
找到plugin 发现有一些插件为红色
点击这些红色插件的后面的勾勾
再重启 就OK了
2 Write access is allowed from event dispatch thread only
解决方式:
File->project structure->Android sdk -> embedded
给当前的android studio的jdk换个版本,使用android studio 自带的jre。JDK版本 和 sdk版本冲突。
仍点击不了运行按钮,则在右上角的锤子图标和运行图标之间的一个下拉三角形,选择app,则运行图标可点击了
3 Unsupported Modules Detected: Compilation is not supported for following modules
File->invalidate caches/Reset->invalidate and reset
重新运行就OK
4 XML文件打不开
也是
File->invalidate caches/Reset->invalidate and reset
清理一下caches
5 点不了install
看install什么,如果是要install API 则可以去SDK Manager中install相应的API版本
6文件不能删除 复制粘贴
右键磁盘 工具 检查 修复
7 Execution failed for task ‘:app:clean’. > Unable to delete directory
将app目录下的 build删除 然后重新clean rebuild
8 无法连接真机设备
(1)检查是否开启开发者模式->USB调试 并且为MTP模式
(2)检查是否是线的问题 有的线是只能充电不能传数据的
(3)检查是否是驱动没有安装的问题 可以下载 豌豆荚 或者360手机助手进行驱动安装
(4)若豌豆荚等软件能识别手机,但是Android studio还是不能运行,
出现:
adb.exe start-server' failed -- run manually if necessary (moments ago)
1
可能是 adb需要的端口被占用了 比如你通过豌豆荚或者 360手机助手去安装驱动,然后没有关闭这个程序,它占用了adb的端口
可以尝试关闭这个程序
若还是不行 则可以:
adb nodaemon server
1
找到端口名
再用
tasklist | findstr "xxxx"
1
找到这个端口的pid
再结束这个pid
taskkill /pid xxxx /f
1
再去Android studio 试试
9 design 界面显示不了
1 重启AndroidStudio(所有都要关了)
2 或者是 引入了错误的布局或者控件
10 android studio Received status code 403 from server: Forbidden
android studio 使用的http代理未被所访问的网址授权
换一个代理
11 apk装不上
It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing
1 存在重复包名的apk 把他卸载掉 可能删了图标但是并没有删除,去文件管理中查看对应包名删除
2 根据以下路径,找到Instant Run中的选项
File —— Settings——Build,Execution,Deployment——Instant Run
将Enable Instant Run to hot swap code/resource changes on deploy(default enabled)的选择框取消。
3 手机运存不足
4 用了系统权限 如manifest中声明了 sharedId
但是没有Root或者该APK没有受到该设备的签名认证
解决:删掉系统权限 或者签名apk
5 若使用的是小米手机 得去开发者中心关闭MIUI 优化
6 clean project rebuild project
7 打开USB安装和允许USB调试以及 通过USB验证应用 开关
12 logcat找不到应用
解决:重新插拔USB线
Android常见Error总结
1 android.content.res.Resources$NotFoundException
setText只能为String 类型的 而你这里的是int类型
2 Error:(501, 1) 错误: 非法字符: '\u0000’
方案1:用Notepad++打开 art+m 或者 点击菜单栏的格式选项 选择 无BOM编码
方案2:在那个文件下把他修改成其他编码然后在修改回UTF-8就应该没问题了 比如我出现在VideoFrament.java 这里 我用的是as 右下角有个修改编码的东西 按照前面说得操作 类似刷新一下编码的意思吧 反正我Build没用 硬是要这样
方案3:如果还是存在 就ctrl+a ctrl+x ctrl+s ctrl+v 这样 让系统再次读下代码
3 Error:null value in entry: outputDirectory=null
删除项目根目录的.gradle文件夹,然后Clean ,Rebulid
4 app:transformClassesWithDexForDebug 错误
1 包重复冲突 检查 build.gradle 以及 lib 或者 external libraries 是否导入了相同的lib库
或者 是 库内存在相同的包
可以查看报错位置 能找的到重复的包就去删掉 找不到可以通过exclude 去声明
2 版本冲突
如support 包 和一些 外置的 包 有版本冲突
如改 support 的版本 27.1.1 为 26.1.0
5 Error:Could not resolve all dependencies for configuration ‘:app:debugAndroidTestRuntimeClasspath’.
Could not determine artifacts for com.android.support.test?1.0.1: Skipped due to earlier error
gradle的问题 更换gradle(如不使用google的而是某个镜像,公司内部的gradle)
6 error: :attr>.
Message{kind=ERROR, text=error: :attr>., sources=[C:\Users\maxshwu.gradle\caches\transforms-1\files-1
其中的一种可能是自定义View时
<declare-styleable
1
写成了
<style
1
或者
<attr name="outerMostArcWidth" format="dimension" />
1
没有写 format
总之就是你的自定义View的style.xml部分写错
7 无法删除文件
1 解除 classpath引用
2 解除 dependenties (compile)implement引用
3 invalidate cache
4 clean project
5 重启电脑 在文件夹删除(不打开as)
8 classpath引入包或者 dependenties (compile)implement引用库失败
1 可能存在空的文件夹,导致认为该包已经存在 先删掉 删不掉参考第7点
9 SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
1 导入的jar包 未在setting.gradle引用
2 local.properties 的sdk路径未配置正确
3 ANDROID_HOME 配置sdk路径
10 Failed to find Platform SDK with path: platforms;android-23
没有响应的sdk 23版本 去下载对应版本即可
11 androidstudio 更新不了sdk 连不上网
1 检查网络状态
2 检查代理 更换可用的代理 或者镜像
3 手动下载
**12 **
setText 不能是int类型的,虽然编译器没报错 但是去setText的时候是会出错的
**13 **
for (xx:yy)
这里的yy不能为空 一定注意!!! 加判空操作
**14 **
arrayList.get(number) 这里的数值要加判断 if(number <= xxList.size -1) 避免下标越界
15 注意: android studio对于 java python等在环境变量中配置修改 需要重启一下as
16 split注意的点
split()方法 用于根据指定的符号对字符串进行分割 生成 一个数组String[]
1 xx.split() 要记得对xx作非空判断 而他是不会提示的
2 “.”和“|”都是转义字符,必须得加"\\"
3
String ips = "12.12.12.12;15.15.15.15;";
ips = "12.12.12.12;15.15.15.15";
ips = "12.12.12.12;15.15.15.15;;;";
String [] ipList = ips.split(";");
System.out.print(ipList.length);
返回的是都是2
ips = "12.12.12.12;15.15.15.15;;13.13.13.13;";
返回的是4 (即 不是看有几个分号 而是若分号后无数据了 则截断 有数据 中间的分号是空的 则存""(非null的值))
ips = "12.12.12.12";(即没有匹配 返回的是整个字符串作为数组的第0位)
返回的是1
**17 **
Execution failed for task ':Launcher4SkyWorth:lint'.
Lint found errors in the project; aborting build.
解决:
1 将相关 的 错误或者警告解决
2 忽略警告
android {
lintOptions {
abortOnError false
}
}
18 Failed to resolve: javax.annotation:javax.annotation-api:1.2
1 若不需要Junit相关的 则删掉 相关compile即可
testCompile 'junit:junit:x.xx'
1
2 若需要,则
android{
repositories {
jcenter()
maven { url "https://www.jitpack.io" }
mavenCentral()
}
19 Failed to find Build Tools revision 26.0.2
原因:无法安装 Build Tools26.0.2
解决:
1 点击错误提示处下方的Install进行安装
2 若安装失败,则在SDK Manager中->Android SDK->SDK Tools->右下角勾选 show Package Details->在 Android SDK Build-Tools一栏中选中 26.0.2进行安装
3 可能是代理问题 更换代理即可
Caused by: org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details.
解决:
点击Build栏左侧的Toggle View 即可查看详细的错误信息
---------------------
原文:https://blog.youkuaiyun.com/weixin_37577039/article/details/78694996
版权声明:本文为博主原创文章,转载请附上博文链接!