Android涉及软硬件,因此相关的坑很多,以前每次都解决了就算了,现准备将这些错误记录下,以便以后查阅。这里只列出我自己的情况。
如果看这篇blog的人觉得有哪些地方需要完善,欢迎指正。
我会对每个错误标明自己用的配置。
1. Cannot Resolve Symbol R
配置:Window10,AS 3.1.3, buildToolsVersion:28.0.1, compileSdkVersion 28,手机:Nexus6P Android7.1.2(API25)
情况:有两种:存在R.java和不存在R.java,我目前只遇到不存在R.java。
不存在R.java解决:
(1) 法一:Clean Project -> Rebuild Project
(2) 法二: 重启AS
(3) 法三: New一个Project,copy原来的
参考:
(1)https://blog.csdn.net/pinklpig/article/details/6566578
(2)https://blog.csdn.net/ccpat/article/details/50738811(手动生成R.java,日后学习下)
2. 透明Activity崩溃
配置:Window10,AS 3.1.3, buildToolsVersion:28.0.1, compileSdkVersion 28,手机:Nexus6P Android7.1.2(API25)
错误:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.lxiao.workpreapre2/com.example.lxiao.workpreapre2.ActivityTest.activityMain2}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2666)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:555)
at android.support.v7.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:518)
at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:466)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.example.lxiao.workpreapre2.ActivityTest.activityMain2.onCreate(activityMain2.java:19)
at android.app.Activity.performCreate(Activity.java:6682)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2619)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
解决:透明Activity要继承Activity类
https://blog.csdn.net/zhangwenchaochao/article/details/78654128
3. Unable to resolve dependency for ':app@debug/compileClasspath': Could not download xxx
配置:Window10,AS 3.1.3, buildToolsVersion:28.0.1, compileSdkVersion 28
解决:
(1) 
(2)

(3) fan qiang(亲猜最有效)
参考:https://blog.csdn.net/collorye/article/details/79173784
(4) 若以上三种都不行,很可能该依赖库不存在(见15),换成低版本的API
4. Ubuntu下adb devices:???????no permissions 问题
配置:Ubuntu16.04
解决:https://www.cnblogs.com/xiaoxuetu/p/3224386.html
5. No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
配置:Ubuntu16.03,AS3.1.3
解决:https://blog.csdn.net/qq_24118527/article/details/82867864
最后只要在toolchains目录下执行ln -sf aarch64-linux-android-4.9 mips64el-linux-android即可,见评论2。
6. Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
配置:Window10,AS3.1.3,Build Tools:28.0.1
前提:添加Dexter6.0.1依赖库(implementation 'com.karumi:dexter:6.0.1')后 build时报错
原因:AndroidX和Android Support库共存问题
解决:
(1) 法一:根据提示在<application ...>中添加代码
android:appComponentFactory=""
tools:replace="android:appComponentFactory"
参考:https://blog.csdn.net/zxwd2015/article/details/86651216
(2) 法二:参考https://www.jianshu.com/p/f7a7a8765294:还没看
7. Error:Execution failed for task ‘:app:transformDexArchiveWithExternalLibsDexMergerForDebug’. 》com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex。。
配置:Window10,AS3.1.3,Build Tools:28.0.1
前提:添加Dexter6.0.1依赖库(implementation 'com.karumi:dexter:6.0.1')后 build时报错
原因:包引用重复
解决:
(1) 法一:在module的build.gradle的defaultConfig添加 "multiDexEnabled true"
参考:https://blog.csdn.net/sparkleyn/article/details/79027796
补充:同时对multiDexEnabled的解释,粗略看了下这文章https://www.cnblogs.com/wingyip/p/4496028.html
好像不错,日后再读。总的说multiDexEnabled就是分Dex,因为ART之前Dex文件对方法索引用short类型存储,导
致最大方法数是65536,因此当项目足够大包含方法数(包括引用的外部Lib里的所有方法)超过65536,就会报 错。
(2) 法二:在module的build.gradle的dependencies里把 implementation 'com.android.support:appcompat-v7:28.0.0' 注释掉
参考:https://www.it72.com/thread-12286.htm
补充:我用控制变量法,发现是添加了Dexter依赖的问题,但要用该库,所以注释了 implementation
'com.android.support:appcompat-v7:28.0.0'。
8. Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'. > More than one file was found with OS independent path 'META-INF/androidx.legacy_legacy-support-core-utils.version'
配置:Window10,AS3.1.3,Build Tools:28.0.1
前提:按照7中的法一解决问题后,出现该问题。
原因:AndroidX和Android Support库不能共存
解决:6,7,8三个是连在一起的,我用了6的法一,7的法一,到这里build没问题,但Run app就有问题,说明还是没解决AndroidX和Android Support问题,这两个概念之后要仔细整理下。
先解决问题,我首先根据网上多数说的方法,在build.gradle(Module:app)中添加如下代码
packagingOptions {
exclude 'META-INF/androidx.legacy_legacy-support-core-utils.version'
}
但Run app时又出现了相似问题,只是路径不同而已。那这看来不是正确解决方法。参照https://www.cnblogs.com/machach/p/10243528.html,正确解决方法是回退依赖库,看了下Dexter6.0.1源码的build.gradle

确实导入了androidx依赖,那就回退到5.0.0版本,解决问题。
9. 将assets中资源作为File对象失败
前提:想将assets中资源作为File对象进行本地读取
原因:assets是在apk中的,无法实现
解决:如要读取assets资源,使用AssetManager
参考:https://www.cnblogs.com/spring87/p/5990156.html
10. Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
前提:使用Material Design的ToolBar
解决:使用自定义style,去掉actionbar
参考:https://www.cnblogs.com/hh9601/p/6404728.html
11. AS突然不显示Logcat日志
前提:AS3.1.3,小米9(Android9)
解决:
(1) 重启
12. AS查找运行时问题步骤
前提:AS3.1.3,Win10
解决:根据以下顺序
(1) 查看Run;
(2) 查看Logcat
(3) Debug;
(4) 打log;
13. AS引入javax包(包括ImageIO等类)
前提:AS3.1.3,Win10
解决:
(1) 找到AS中rt.jar路径;
(2) 在当前Module的build.gradle中添加
compile files ('path/to/rt.jar')
参考:https://blog.csdn.net/qqyanjiang/article/details/50161753
14. java.lang.UnsatisfiedLinkError: No implementation found for long org.opencv.core.Mat.n_Mat() (tried Java_org_opencv_core_Mat_n_1Mat and Java_org_opencv_core_Mat_n_1Mat__)
前提:AS3.1.3,Win10
解决:添加对so的依赖
参考:https://blog.csdn.net/u012328159/article/details/81094436 第三、四步
15. ERROR: Unable to resolve dependency for ':app@debug/compileClasspath': Could not find any version that matches com.android.support:appcompat-v7:30.+.(待完善)
前提:AS3.1.3,Win10,new project时sync报错
原因:androidx和android support关系

解决:
(1) 将
implementation 'com.android.support:appcompat-v7:30.+'替换为
implementation 'androidx.appcompat:appcompat:1.1.0'
参考:https://blog.csdn.net/qq_33210042/article/details/103409695
16. Android App闪退(待完善)
解决:
(1) 检查View和资源id类型是否匹配(出现过ImageView和TextView的id进行findViewById导致的情况);
17. Error:Server returned HTTP response code: 403 for URL: http://services.gradle.org/distributions/gradle-4.x-all.zip
前提:AS3.1.3,Win10
原因:http协议不行
解决:
在gradle-wrapper.properties中改成https
18. AS导入jar
前提:AS3.5,Win10
参考:https://www.cnblogs.com/lgqrlchinese/p/9959709.html
19. 警告:API 'variant.getJavaCompile()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'
待解决
20. git clone报错“fatal: unable to access 'https://github.com/wkxjc/CustomViewDemo/': SSL certificateproblem: unable to get local issuer certificate”
前提:git 2.28.0,Win10
解决:命令行上运行 git config --global http.sslVerify false 将安全验证关掉
参考:https://blog.csdn.net/soindy/article/details/41088169
21. 修改模块名
前提:AS4.0.1,Win10
解决:
(1) 右键module->Refactor->rename module and directory;
(2) 在settings.gradle中include ‘’刚改过的名字。
22. imgView.setImageBitmap无法显示
前提:AS4.0.1,Win10
解决:
(1) 把targetSdkVersion注释;(验证)
参考:https://blog.csdn.net/whucyl/article/details/9101563
(2)修改Bitmap的显示比例;(未验证)
23. Android历史版本下载
url:https://developer.android.google.cn/studio/archive?hl=zh-cn
24. ERROR: This version of Android Studio cannot open this project, please retry with Android Studio 4.0
前提:AS4.0.1,Win10
解决:将project的build.gradle中如下改为自己as对应版本(我的是as3.5.3)

25. ERROR: Cause: unable to find valid certification path to requested target
前提:AS3.4,Win10
解决:在setting中开proxy
26. Error:android java.lang.UnsatisfiedLinkError: No implementation found for long org.opencv.core.Mat.n_Mat
前提:AS3.1.3,Win10
原因:没有加载openCV4Android的库
解决:
在Activity中添加如下代码,并调用opencv4Loader():
private BaseLoaderCallback mLoaderCallback=new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status){
switch (status) {
case LoaderCallbackInterface.SUCCESS: {
Log.d("waterMark1", "OpenCV loaded successfully");
}
break;
default: {
super.onManagerConnected(status);
}
break;
}
}
};
private void opencv4Loader(){
if(!OpenCVLoader.initDebug()){
Log.d("waterMark1", "Internal OpenCV library not found. Using OpenCV Manager for initialization");
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback);
}else{
Log.d("waterMark1","OpenCV library found inside package. Using it!");
mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
}
}
参考:https://www.cnblogs.com/feijian/p/6652401.html
27. 点“Attach Debugger to Android Process”出现debug info can be unavailable. Please close other application using ADB: Monitor, DDMS, Eclipse错误
前提:AS3.1.3,Win10
解决:
(1) 重启AS;
28. 华为EMUI手动装apk包时出现“无效安装包 与操作系统不兼容”错误
前提:AS4.0.1,Win10,EMUI Android 9
错误:第一次手动安装apk-debug正常,第二次手动安装改后的apk-debug时出现

原因:参考https://blog.csdn.net/lk2021991/article/details/91615656
EMUI改了Android的debug签名验证机制,如果用

生成,会导致EMUI无法解析。
解决:参考:https://blog.csdn.net/qq_30000411/article/details/102531258
按一按下步骤
(1) Clean Project
(2) 用

build
29. 多线程调试时“Paused in another thread“
前提:AS4.0.1,Win10
解决:进入报错的函数内部继续调试定位问题
30. AS的build.gradle(project)和gradle-wrapper.properties对应列表
前提:Win10
列表:
AS | build.gradle(project) | gradle-wrapper.properties | 3.1.3 | 3.1.3 | 4.4.1 | 4.0.1 | 4.0.1 | 6.1.1 |
31. java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling
Todo
32. Could not reset the state on your devices
前提:问题

解决:
(1) 重启app;
(2) 重启AS;
(3) 重启手机;
33. The layout "load_layout1" in layout has no declaration in the base layout folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier
前提:在layout中添加新布局后,在布局中报错
解决:File => Invalidate Caches / Restart => Invalidate and Restart.
参考:https://stackoverflow.com/questions/52547657/the-layout-layout-in-layout-has-no-declaration-in-the-base-layout-folder-erro
34. Unsupported Modules Detected: Compilation is not supported for following modules:xx. Unfortunately you can't have non-Gradle Java modules and Android-Gradle modules in one project.
前提:从网上down一个demo,在Build时报错
解决:删除.idea文件-》重新sync
这里.idea如下

参考:https://www.jianshu.com/p/8c83db4daeae
35. 在AS无法导入库
前提:alt+enter指定类无法import
解决:重启AS
36. Dependent features configured but no package ID was set.
前提:在app module A依赖app module B(在A的build.gradle中添加了implementation project(":A"))后在build时报错
原因:app module只能依赖library module
解决:将app module B改为library module,按以下步骤
(1) 把B的build.gradle顶部改成 apply plugin: 'com.android.application' ;
(2) 删除B的build.gradle中android block中的applicationId行。
参考:https://cloud.tencent.com/developer/article/1326481
37. android.os.NetworkOnMainThreadException
前提:在onCreate中用
InetAddress ip2=InetAddress.getByName("www.baidu.com");
原因:在>=android3.0后,在主线程进行网络操作会抛此exception。

解决:把网络操作放子线程。
参考:https://developer.android.com/reference/android/os/NetworkOnMainThreadException
https://www.jianshu.com/p/dd14279221cb
38. no suspicious code found
前提:使用lint扫描全局时报错
解决:
(1) 法一:重启as再扫描
38. INSTALL_FAILED_VERSION_DOWNGRADE
前提:用adb install时报错,当前手机已有旧commit的apk,要装新commit的apk
解决:adb install -r -d “apk名“
参考:https://blog.csdn.net/qq_39493848/article/details/100731960
39. 使用lint查找无引用资源时的问题
前提:用as的lint查找”unused resources“时有bug
问题:
(1) 查找出的无引用资源中有的资源是有引用的,需手动复查;
(2) 用”remove declarations for xx“删除无引用资源会删除非预期资源,需用commit复查;
40. 切换到别的commit时直接build报错(存在xxGradle版本不支持的特性)
解决:切换到别的commit后先sync再build
41. layout inspector无法显示布局(nothing to show)
解决:
(1) 重启app;
(2) 重启AS;
(3) 重启手机;
42. AS无法显示整个界面
前提:突然无法显示整个界面,但底部图标能点击
解决:删除AS配置文件(C:\Users\用户\.AndroidStudioxx)-》重启AS
43. 打开较大hprof导致AS ANR
解决:修改AS的堆内存大小
参考:https://www.jianshu.com/p/03b42798531d
44. AS debug/用layout inspector 时显示“no debuggable processes”
解决:
(1) 关闭整个AS进程并重启;
(2) 拔掉线重连手机;
45. 用LeakCanary抓到leak时报错Heap analysis failed(Kotlin.kotlinNullPointerException)
前提:
LeakCanary的Heap Dumps中stacktrace如下
kotlin.KotlinNullPointerException
at shark.internal.KeyedWeakReferenceMirror$Companion.fromInstance(KeyedWeakReferenceMirror.kt:34)
at shark.KeyedWeakReferenceFinder$findKeyedWeakReferences$1$addedToContext$2.invoke(KeyedWeakReferenceFinder.kt:49)
at shark.KeyedWeakReferenceFinder$findKeyedWeakReferences$1$addedToContext$2.invoke(KeyedWeakReferenceFinder.kt:10)
at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:172)
at kotlin.sequences.FilteringSequence$iterator$1.calcNext(Sequences.kt:132)
at kotlin.sequences.FilteringSequence$iterator$1.hasNext(Sequences.kt:156)
at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:722)
at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:752)
at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:743)
at shark.KeyedWeakReferenceFinder$findKeyedWeakReferences$1.invoke(KeyedWeakReferenceFinder.kt:54)
at shark.KeyedWeakReferenceFinder$findKeyedWeakReferences$1.invoke(
KeyedWeakReferenceFinder.kt:10)
at shark.GraphContext.getOrPut(GraphContext.kt:23)
at shark.KeyedWeakReferenceFinder.findKeyedWeakReferences$shark(KeyedWeakReferenceFinder.kt:35)
at shark.KeyedWeakReferenceFinder.findLeakingObjectIds(KeyedWeakReferenceFinder.kt:13)
at shark.HeapAnalyzer.analyzeGraph(HeapAnalyzer.kt:160)
at shark.HeapAnalyzer.analyze(HeapAnalyzer.kt:99)
at leakcanary.internal.HeapAnalyzerService.analyzeHeap(HeapAnalyzerService.kt:83)
at leakcanary.internal.HeapAnalyzerService.onHandleIntentInForeground(HeapAnalyzerService.kt:60)
at leakcanary.internal.ForegroundService.onHandleIntent(ForegroundService.kt:55)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:78)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:238)
at android.os.HandlerThread.run(HandlerThread.java:67)
Build.VERSION.SDK_INT: 29
Build.MANUFACTURER: OPPO
LeakCanary version: 2.5
Analysis duration: 1540 ms
hprof:见https://github.com/Eric-Li-2356/leakcanary-bug
解决:Todo
参考:https://github.com/square/leakcanary/issues/1992
46. Unknown HPROF Version (JAVA PROFILE 1.0.3) (java.io.IOException)
前提:将leakcanary获取的hprof放入MAT报错
原因:The hprof file you get from Android has android specific format. You should convert hprof file take from Android OS into standard hprof format.
解决:
For this you can use hprof-conv tool that is located at AndroidSDK/tools/hprof-conv .
For example:
hprof-conv android.hprof mat.hprof
参考:https://stackoverflow.com/questions/6219049/error-opening-hprof-file-ioexception-unknown-hprof-version
47. java.io.IOException: Could not delete lib xx
前提:想删除一个external library的jar,报错
解决:在项目根目录运行 gradlew clean清gradle缓存-》重新删
参考:https://blog.csdn.net/qq_33323251/article/details/79379251
48. Build Failed:Duplicate class xx found in modules A.jar(xx) and B.jar(xx)
前提:项目中通过如下方式
(1) project的build.gradle中 添加库;
(2) project的build.gradle中buildscript的dependencies中加插件 class 'xx';
(3) module的build.gradle中android闭包之后引入插件 apply plugin:‘xx’;
引入另个依赖库并sync后,在Run时报Build failed,duplicate class 。。。
原因:引入的依赖库存在和已有库重复的类
解决:在project的build.gradle中添加如下配置去除重复依赖

https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html
49. Warning:debug info can be unavailable. Please close other application using ADB:Monitor, DDMS, Eclipse
前提:Win10,AS4.0.1,打开过android device monitor,报了adb端口冲突 -》 关闭android device monitor,点debug报错
解决:
(1) 输入 adb usb;
(2) 重启电脑(关闭后台adb应用);
注:AS通过环境变量调用adb
50. make aar时报错
前提:make aar时报下错

解决:换个好代理
51. Cause: dl.google.com:443 failed to respond
前提:sync时报错
解决:
在proxy setting中check下dl.google.com是否连通:
若不能通说明代理问题;
52. no launcher activity found
解决:
(1)查看activity是否在manifest中有category设launcher;
(2) 重建app module,copy;
53. AS Build时报错出现乱码
解决:
(1) Help-》Edit Custom VM Options:添加 -Dfile.encoding=UTF-8
(2) Invalidate Caches/Restart
54. android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
前提:在service用startactivity跳activity报错
解决:code中加
参考:https://blog.csdn.net/fang323619/article/details/74388804
https://blog.csdn.net/u010389391/article/details/78558475
55. AS布局预览不显示
解决:
(1) design界面force refresh layout
参考:https://blog.csdn.net/weixin_42863849/article/details/100022063
56. AS引入material design
参考:https://material.io/develop/android/docs/getting-started
57. 查找手机上指定安装包
解决:adb shell-》pm list packages | grep "keyword"
58. Unable to resolve dependency for 'xx module@debug/compileClasspath': Could not resolve project: xx module
前提:使用as辅助的 为某个module添加依赖module后,sync报如下错

解决:todo
解决:在手机 设置-》开发者选项 中把“日志记录器缓冲器大小”设大点或关闭
参考:https://stackoverflow.com/questions/48689930/logcat-crashes-with-error-unexpected-eof/48704727
60. AS在启动时进入debug模式闪退
前提:在主线程中 下断点闪退
解决:去掉断点(原因待纠)
参考:https://stackoverflow.com/questions/40618803/android-app-crashes-when-launched-in-debug-mode
61. AS用layout inspector时app闪退
前提:AS4.0.1
解决:
按以下步骤依次尝试:
(1) adb kill-server-》adb start-server;
(2) 重启app;
(3) 重启AS;
(4) 重启手机;
62. AS中Gradle Build时报错:请求的操作无法在使用用户映射区域打开的文件上
解决:
(1) 重启AS
63. AS调试时断点不可用(No executable code found)解决方案
解决:
(1) clean整个项目; (2) Ctr+F9 执行make project;
(3) 重新启动项目debug;
参考:
https://www.jianshu.com/p/be59fdce1e6a
特例:
(1)

64. SSL peer shut down incorrectly
解决:Todo
参考:https://blog.csdn.net/shanfuming/article/details/86472493
65. no such instance field/no such static field
前提:debugger时变量显示如上
解决:关混淆(具体buildType设minifyEnabled false)
参考:https://blog.csdn.net/niuba123456/article/details/99820528
66. Android断点调试时闪退
前提:AS4.0.1
解决:todo
67. Android Studio无法新建module
前提:AS4.0.1右键项目名new无module选项
解决:Invalidate and Restart |