Android编程常见问题及解决(持续更新)

Android涉及软硬件,因此相关的坑很多,以前每次都解决了就算了,现准备将这些错误记录下,以便以后查阅。这里只列出我自己的情况。

如果看这篇blog的人觉得有哪些地方需要完善,欢迎指正。

我会对每个错误标明自己用的配置。

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类

           android的Activity采用透明主题_zhangwenchaochao的博客-CSDN博客_android 透明主题

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(亲猜最有效)

参考:Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.suppor_collorye的博客-CSDN博客

(4) 若以上三种都不行,很可能该依赖库不存在(见15),换成低版本的API

4. Ubuntu下adb devices:???????no permissions 问题

配置:Ubuntu16.04

解决:Ubuntu下解决adb devices:???????????? no permissions的方法 - 小学徒V - 博客园

5. No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android

配置:Ubuntu16.03,AS3.1.3

解决:完美解决 No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android_Code for Coffee-CSDN博客

           最后只要在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"

           参考:AndroidStudio报错Manifest merger failed : Attribute application@appComponentFactory value=(android.sup_米小豆的博客-CSDN博客

(2) 法二:参考Androidx和Android support库共存问题解决 - 简书:还没看

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"

            参考:Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. > com.a_sparkleyn的博客-CSDN博客

            补充:同时对multiDexEnabled的解释,粗略看了下这文章Android 分Dex (MultiDex) - wingyip - 博客园

                      好像不错,日后再读。总的说multiDexEnabled就是分Dex,因为ART之前Dex文件对方法索引用short类型存储,导

                       致最大方法数是65536,因此当项目足够大包含方法数(包括引用的外部Lib里的所有方法)超过65536,就会报                           错。

(2)  法二:在module的build.gradle的dependencies里把  implementation 'com.android.support:appcompat-v7:28.0.0' 注释掉

            参考:解决安卓运行错误Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug-Android-IT企鹅 | 一个技术分享平台

            补充:我用控制变量法,发现是添加了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时又出现了相似问题,只是路径不同而已。那这看来不是正确解决方法。参照记录一个AndroidX和Android support库不能共存的坑 - 马叉虫啊 - 博客园,正确解决方法是回退依赖库,看了下Dexter6.0.1源码的build.gradle

确实导入了androidx依赖,那就回退到5.0.0版本,解决问题。

9. 将assets中资源作为File对象失败

前提:想将assets中资源作为File对象进行本地读取

原因:assets是在apk中的,无法实现

解决:如要读取assets资源,使用AssetManager

            参考:关于Android Assets读取文件为File对象 - 狂奔的小狮子 - 博客园

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

           参考: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 t - 大果梨 - 博客园

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')

  参考:Android Studio引入javax包问题_体验Android编程之美-CSDN博客

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的依赖

参考:Android Studio中配置OpenCV_天泽28的专栏-CSDN博客  第三、四步

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'

参考:ERROR: Failed to resolve: com.android.support:appcompat-v7:29.0.0_小牧在一直在学习,在前进的道路上大家一起学习,进步。-CSDN博客

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

参考:Android Studio导入jar包 - 龙谷情Sinoam - 博客园

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  将安全验证关掉

参考git报错 unable to access 'https://****': SSL certificate problem: Invalid_soindy-CSDN博客

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注释;(验证)

        参考:怪胎:Android开发ImageView图片无法显示_pp1专栏-CSDN博客_imageview 无法显示

(2)修改Bitmap的显示比例;(未验证)

23. Android历史版本下载

url:Android Studio 下载文件归档  |  Android 开发者  |  Android Developers

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);
        }
    }

参考:java.lang.UnsatisfiedLinkError: No implementation found for long org.opencv.core.Mat.n_Mat() - 飞剑 - 博客园

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) adb usb

   (2) adb kill-server

   (3) 重启手机

   (4) 重启系统

参考:

debugging - Cannot debug android app in Intellij: "Warning: debug info can be unavailable." - Stack Overflow

28. 华为EMUI手动装apk包时出现“无效安装包 与操作系统不兼容”错误

前提:AS4.0.1,Win10,EMUI Android 9

错误:第一次手动安装apk-debug正常,第二次手动安装改后的apk-debug时出现

原因:参考无效安装包,与操作系统不兼容_lk2021991的博客-CSDN博客_无效安装包与操作系统不兼容

           EMUI改了Android的debug签名验证机制,如果用

           

           生成,会导致EMUI无法解析。

解决:参考:华为手机安装debug时出现无效安装和与操作系统不兼容问题解决_xy_liwp的博客-CSDN博客_无效安装包与操作系统不兼容

       按一按下步骤

     (1) Clean Project

     (2) 用

              

             build

29. 多线程调试时“Paused in another thread“

前提:AS4.0.1,Win10

解决:进入报错的函数内部继续调试定位问题

30. AS的build.gradle(project)和gradle-wrapper.properties对应列表

前提:Win10

列表

ASbuild.gradle(project)gradle-wrapper.properties
3.1.33.1.34.4.1
4.0.14.0.16.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.

参考android - The layout <layout> in layout has no declaration in the base layout folder [error] - Stack Overflow

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如下

           

参考AS出现Unsupported modules detected - 简书

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行。

参考android studio一个module依赖另外一个module - 云+社区 - 腾讯云

37. android.os.NetworkOnMainThreadException

前提:在onCreate中用

     InetAddress ip2=InetAddress.getByName("www.baidu.com");

原因:在>=android3.0后,在主线程进行网络操作会抛此exception。

           

解决:把网络操作放子线程。

参考https://developer.android.com/reference/android/os/NetworkOnMainThreadException

           android.os.NetworkOnMainThreadException - 简书

38. no suspicious code found

前提:使用lint扫描全局时报错

解决

    (1) 法一:重启as再扫描

38. INSTALL_FAILED_VERSION_DOWNGRADE

前提:用adb install时报错,当前手机已有旧commit的apk,要装新commit的apk

解决:adb install -r -d “apk名“

参考解决Android INSTALL_FAILED_VERSION_DOWNGRADE_如果人生就像一场梦,那就希望你做个好梦!-CSDN博客

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) 开发者选项-USB调试 重开;

       (2) 重启手机;

       (3) 重启AS;

42. AS无法显示整个界面

前提:突然无法显示整个界面,但底部图标能点击

解决:删除AS配置文件(C:\Users\用户\.AndroidStudioxx)-》重启AS

43. 打开较大hprof导致AS ANR

解决:修改AS的堆内存大小

参考修改Android Studio的内存大小 - 简书

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:见GitHub - Eric-Li-2356/leakcanary-bug

解决:Todo

参考Heap Analysis failed - KotlinNullPointerException · Issue #1992 · square/leakcanary · GitHub

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

参考android - error opening HPROF file: IOException: Unknown HPROF Version - Stack Overflow

47. java.io.IOException: Could not delete lib xx

前提:想删除一个external library的jar,报错

解决:在项目根目录运行 gradlew clean清gradle缓存-》重新删

参考java.io.IOException: Could not delete path 'E:\rn\PentaxPhotoSync\android\app\build\generated\_clf_programing-CSDN博客

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中添加如下配置去除重复依赖

          

Chapter 4. Types, Values, and Variables

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中加 

参考Android 在Service中启动Activity的大坑_姚佳伟-CSDN博客_service启动activity

          Android Intent.FLAG_ACTIVITY_NEW_TASK的个人理解_u010389391的博客-CSDN博客

55. AS布局预览不显示

解决:

(1) design界面force refresh layout

参考:Android Studio布局预览不显示的解决方法__陈泡泡的博客-CSDN博客_studio布局显示不出来

56. AS引入material design

参考Material Design

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

59. AS显示Logcat crashes with error: unexpected EOF

解决:在手机 设置-》开发者选项 中把“日志记录器缓冲器大小”设大点或关闭

参考android - Logcat crashes with error: unexpected EOF - Stack Overflow

60. AS在启动时进入debug模式闪退

前提:在主线程中下断点闪退

解决:去掉断点(原因待纠)

参考Android app crashes when launched in debug mode - Stack Overflow

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 project;
(2) 重新build安装;

(3) 启动app debug;

参考

Android Studio 调试时断点不可用(No executable code found)解决方案 - 简书

特例

(1)

64. SSL peer shut down incorrectly

解决

(1) 开代理;

参考AndroidStudio中遇到Error:SSL peer shut down incorrectly,解决方案_shanfuming的博客-CSDN博客

65. no such instance field/no such static field

前提:debugger时变量显示如上

解决:关混淆(具体buildType设minifyEnabled false)

参考AndroidStudio调试出现查看不到变量数据:No Such instance field:_牛八少爷的专栏-CSDN博客

66. Android断点调试时闪退

前提:AS4.0.1

解决

(1) adb kill-server -》 adb start-server;

(2) 重启app;

(3) 重启手机;

(4) 重启Android Studio;

(5) 重启电脑;

67. Android Studio无法新建module

前提:AS4.0.1右键项目名new无module选项

解决:Invalidate and Restart

68. 修改代码后build project运行时修改未生效

解决

(1) clean project;

(2) build project;

69. WebView相关

(1) 加载“http://www.bing.com”时WebView显示“net:ERR_CLEARTEXT_NOT_PERMITTED”

原因:从Android 9.0(API级别28)开始,默认情况下禁用明文支持。因此http的url均无法在webview中加载

解决

【1】 在Manifest.xml中的application标签加“android:usesCleartextTraffic="true";

【2】 使用https;

参考Android9.0无法加载http的url,net::ERR_CLEARTEXT_NOT_PERMITTED_开发小白的博客-CSDN博客

(2)WebView显示“net:err_cache_miss”

解决:AndroidManifest.xml文件中加入联网的权限 <uses-permission android:name="android.permission.INTERNET"/>

参考Webview加载网页时出现NET::ERR_CACHE_MISS的错误_baidu_33679413的博客-CSDN博客

70. RecyclerView相关

(1) 调notifyDataSetChanged()未进入onCreateViewHolder,onBindViewHolder, getItemCount

可能原因:

(1) 未写RecyclerView.setLayoutManager();

72. 初次编译kotlin报错

前提:用AS或IDEA初次编译kotlin报错

解决:修改heap size

73. Failed to create voice “adc“

前提:启动AS自带模拟器时报错

解决

(1) 插上耳机;

74. base.apk code is missing

前提:adb install时报错

解决

(1) 重新build;

(2) clean project -》 重新build;

75. 请求的操作无法在使用用户映射区域打开的文件上执行

前提

解决

(1) 重新sync;

76. 对无法找到xx相关的总结

(1) no usages found in All Places/cannot resolve symbol xx/cannot find declaration to go to

前提:在AS中添加xx(多为资源),但马上引用时报错

解决

        【1】 检查是否拼写错误

        【2】 重启AS;

(2) 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)r.java文件没有生成_pinklpig的专栏-CSDN博客

(2)Android R.java类的手动生成_ccpat的专栏-CSDN博客_android r.java(手动生成R.java,日后学习下)

(3) Resources.NotFoundException:xx

前提:存在xx,但运行时报exception

解决

【1】 clean project-》build project;

77. 用AS进行commit时漏掉文件

前提:AS4.0.1,文件之前add了,但commit时未显示

解决:用AS进行commit前命令行 add .

78. adb install时显示failed to install xx.apk

前提:adb devices正常 且 adb install显示failed to install apk

解决

(1) 卸载原有apk-》adb install

参考android - adb fail install .apk - Stack Overflow

79. findViewById报错nullpointerexception

前提:layout中有改id,但findviewbyid报错

解决

(1) 换个module

80. Android studio 远程主机强迫关闭了一个现有的连接

前提:as arctic fox2020.3.1,点击run时报错

解决:

(1) invalidate cache and restart

81. Android studio 在Gradle中无构建任务

前提:as arctic fox2020.3.1在

        中没显示Tasks列表

解决:

        去掉的钩然后sync

82. Android studio 报错“Type xxx is defined multiple times:。。。。”

前提:as arctic fox2020.3.1

解决:

(1) clean project-》run

83. AS升级gradle和gradle plugin后报错

 前提:as arctic fox2020.3.1 patch3 升级gradle和gradle plugin到

        sync时报错 

 解决

https://stackoverflow.com/questions/68585885/allow-insecure-protocols-android-gradlexxx

在报错仓库闭包中添加:

allowInsecureProtocol = true

84. 在build时报错“resource android:attr/lStar not found.”

 前提:在new了个module后,build时报错“AAPT: error: resource android:attr/lStar not found.”

 解决

   参考:error: resource android:attr/lStar not found完美解决_无名的一棵小树-CSDN博客

(1) 定位到 

(2) 在app/build.gradle中添加

configurations.all {
    resolutionStrategy {
        force 'androidx.core:core:1.3.2'
    }
}

 和android{}同层级

(3) sync-》run

85. “The application could not be installed: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED”,“Installation failed due to: 'null'”

前提:AS4.0.1,

          SdkVersion配置为

问题:在run时报错

然后通过adb install方式显示:

原因

参考 Android 12 targetSdkVersion为31应用的安装问题_Tomes.V.White-CSDN博客

当我们的应用以Android 12为目标,使用的activity,service,broadcast receiver含有intent-filter,则必须显示声明android:exported属性,如果没有声明,则我们的应用不能安装在Android 12上

解决

声明android:exported属性即可解决,不管exported是true或false。

但在oppo手机上设为false点击app时显示“应用数据读取失败,无法启动应用”。

86. 安装失败-安装包异常

前提:oppo手机,debug包,AS4.0.1

问题:run时

原因:

 参考:解决Android Studio提示:安装包有异常,无法安装_lsldd的专栏-CSDN博客_安装包异常

造成该问题的原因是Android Studio 4.0.1会在debug apk的manifest文件application标签里自动添加 android:testOnly="true"属性。
该属性导致在IDE中使用Run生成的apk在大部分手机上只能用adb install -t 来安装。
这种apk在oppo手机上甚至安装不了。

解决

在gradle.properties 文件中添加如下指令:

android.injected.testOnly=false

release 发布的时候由于有签名,因此不会遇到这个问题。

87. AS的Device File Explorer显示不了

前提:AS4.0.1,root过的手机

解决

Android Studio 3 (All Versions) - Device file explorer nothing to show - Stack Overflow

88. AS报错“Cannot access androidx.activity.contextaware.ContextAware”

前提:AS4.0.1, 某个Activity

解决:

(1)

参考:

如何解决“无法访问androidx.activity.contextaware.ContextAware‘”?”_锐湃的博客-CSDN博客

添加下面的依赖:

def activity_version = "1.2.2"
 
// Java language implementation
implementation "androidx.activity:activity:$activity_version"
// Kotlin
implementation "androidx.activity:activity-ktx:$activity_version"

(2)

参考:

Android kotlin AppCompatActivity错误::Cannot access 'androidx.activity.contextaware.ContextAware' which is a supertype of xxx;Cannot access 'androidx.activity.result.ActivityResultCaller' - caosiqiao - 博客园

​​​​​​添加下面的依赖

implementation "androidx.activity:activity-ktx:1.2.0-beta01"

89. AS无法正确显示进程

前提:AS2020.1.1

问题:在无法正确显示所有进程

解决:重启AS

90. 报错“Unable to instantiate activity ComponentInfo xxx.  Didn't find class xxx on path: DexPathList 。。。”

前提:AS2021.1.1,MainActivity用kotlin编写

问题:运行app时报错

2022-05-03 16:40:56.169 6606-6606/com.example.viewtest E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.viewtest, PID: 6606
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.viewtest/com.example.viewtest.dialogtest.dialogfragmenttest.bottomsheetdialogfragment.MainActivity1}: java.lang.ClassNotFoundException: Didn't find class "com.example.viewtest.dialogtest.dialogfragmenttest.bottomsheetdialogfragment.MainActivity1" on path: DexPathList[[zip file "/data/app/~~SKUdsc5bR7Wsfj8xVTZ-vQ==/com.example.viewtest-dJ6os54tBs16DUxeJfreYg==/base.apk"],nativeLibraryDirectories=[/data/app/~~SKUdsc5bR7Wsfj8xVTZ-vQ==/com.example.viewtest-dJ6os54tBs16DUxeJfreYg==/lib/arm64, /system/lib64, /system_ext/lib64, /vendor/lib64, /odm/lib64]]
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3630)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3889)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:140)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:100)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2319)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:263)
        at android.app.ActivityThread.main(ActivityThread.java:8273)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.viewtest.dialogtest.dialogfragmenttest.bottomsheetdialogfragment.MainActivity1" on path: DexPathList[[zip file "/data/app/~~SKUdsc5bR7Wsfj8xVTZ-vQ==/com.example.viewtest-dJ6os54tBs16DUxeJfreYg==/base.apk"],nativeLibraryDirectories=[/data/app/~~SKUdsc5bR7Wsfj8xVTZ-vQ==/com.example.viewtest-dJ6os54tBs16DUxeJfreYg==/lib/arm64, /system/lib64, /system_ext/lib64, /vendor/lib64, /odm/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
        at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:45)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1254)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3618)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3889) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:140) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:100) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2319) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:263) 
        at android.app.ActivityThread.main(ActivityThread.java:8273) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006) 

原因

https://stackoverflow.com/questions/26768663/java-lang-runtimeexception-unable-to-instantiate-activity-componentinfo-jav/68185041#68185041https://stackoverflow.com/questions/26768663/java-lang-runtimeexception-unable-to-instantiate-activity-componentinfo-jav/68185041#68185041

 解决:在module的build.gradle中加入

apply plugin: 'kotlin-android'

91. 报错“Error inflating class androidx.appcompat.widget.ActionBarContainer”

前提:AS2021.1.1 Patch2

问题:运行app时报错

2022-05-03 21:28:18.747 29393-29393/com.example.viewtest E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.viewtest, PID: 29393
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.viewtest/com.example.viewtest.dialogtest.origindialog.MainActivity}: android.view.InflateException: Binary XML file line #27 in com.example.viewtest:layout/abc_screen_toolbar: Binary XML file line #27 in com.example.viewtest:layout/abc_screen_toolbar: Error inflating class androidx.appcompat.widget.ActionBarContainer
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3722)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3889)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:140)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:100)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2319)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:263)
        at android.app.ActivityThread.main(ActivityThread.java:8273)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)
     Caused by: android.view.InflateException: Binary XML file line #27 in com.example.viewtest:layout/abc_screen_toolbar: Binary XML file line #27 in com.example.viewtest:layout/abc_screen_toolbar: Error inflating class androidx.appcompat.widget.ActionBarContainer
     Caused by: android.view.InflateException: Binary XML file line #27 in com.example.viewtest:layout/abc_screen_toolbar: Error inflating class androidx.appcompat.widget.ActionBarContainer
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
        at android.view.LayoutInflater.createView(LayoutInflater.java:852)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
        at androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:899)
        at androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:809)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:195)
        at com.example.viewtest.dialogtest.origindialog.MainActivity.onCreate(MainActivity.java:16)
        at android.app.Activity.performCreate(Activity.java:8146)
        at android.app.Activity.performCreate(Activity.java:8130)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1310)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3691)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3889)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:140)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:100)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2319)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:263)
        at android.app.ActivityThread.main(ActivityThread.java:8273)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612)
2022-05-03 21:28:18.747 29393-29393/com.example.viewtest E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)
     Caused by: java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; in class Ljava/lang/invoke/LambdaMetafactory; or its super classes (declaration of 'java.lang.invoke.LambdaMetafactory' appears in /apex/com.android.art/javalib/core-oj.jar)
        at androidx.core.view.ViewCompat.<clinit>(ViewCompat.java:2857)
        at androidx.core.view.ViewCompat.setBackground(ViewCompat.java:2996)
        at androidx.appcompat.widget.ActionBarContainer.<init>(ActionBarContainer.java:63)
        	... 30 more

解决:看了存在该类。网上方法都试了没用,最后新new个module解决。估计是依赖版本升级导致错误。

92. build提示“在java中引入的kotlin的xx包不存在”

前提:java调kotlin,在build时报如标题错

解决

android kotlin错误: 程序包不存在_Mocker_的博客-CSDN博客

Android 开发Java调用Kotlin提示包不存在_kari_zhang的博客-CSDN博客

在app的build.gradle顶部加

apply plugin: ‘kotlin-android’

93. Caused by: org.gradle.api.tasks.StopExecutionException: Your project path contains non-ASCII characters. This will most likely cause the build to fail on Windows. Please move your project to a different directory. See http://b.android.com/95744 for details. This warning can be disabled by adding the line 'android.overridePathCheck=true' to gradle.properties file in the project directory.

解决:根据提示解决即可

94. material库在1.1.0及以上版本MaterialCardView运行闪退

前提:如标题,MaterialCardView会报以下3种运行时错:

(1) “Error inflating class com.google.android.material.card.MaterialCardView

(2) “Error inflating class <unknown>”

(3) “ Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).”

解决

android - MaterialCardView crashes with material:1.1.0 - Stack Overflow

升级到material:1.1.0以上版本后MaterialCardView,MaterialButton 等控件闪退的问题_红地毯前吃泡面的博客-CSDN博客

在xml中MaterialCardView标签中添加主题,值为“Theme.MaterialComponents或其子主题”,如下

95. AS升级版本后“Building Symbols”很久,且无法点击

前提:如标题

解决

Android Studio 2.x - Building Symbols... Forever - Stack Overflow

(1) 杀死AS

(2) 进入显示“building symbols”很久的项目,删除“.idea”目录

(3) 重启AS,并re-import the project

96. 在AS中运行纯java程序

前提:AS2021.1.1 Patch3

解决

AndroidStudio 如何运行java main方法 - 掘金

经实测,上面链接只有法二可行,但会输出除程序本身逻辑外的其他东西,不太方便。

97. IDEA安装jclasslib反汇编插件

(1) idea community版

     结论:在2020.1.4上不可用

     参考资料:

              https://blog.csdn.net/w605283073/article/details/103209221

              解决idea 2020.2版本安装jclasslib无法使用_LazyTing的博客-CSDN博客

(2) idea ultimate版

      结论:在2021.2上可用

98. 编译报错“前言中不允许有内容”

前提:AS中编译项目报错

 解决

参考https://www.cnblogs.com/yongdaimi/p/11760603.html。把报错module中所有xml都看下,找对应的报错行列的那个有问题的xml文件,解决下即可。如这里在布局xml中有问题

99. Android Studio打开后闪退

参考:我的电脑一打开android studio不一会就闪退了_mob649e8166179a的技术博客_51CTO博客

把C盘里缓存那些文件删下。

100. Android Studio编译单个java/kotlin文件

用android studio 编译单个java文件_androidstudio单独编译java-CSDN博客

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值