AndroidStudio 代码全红,但可正常运行解决方法及解决后续代理的问题

2019-05-30 20:38:22


参考文档 AndroidStudio 代码全红,但可正常运行解决方法及解决后续代理的问题

上周重装了下电脑,发现AndroidStudio 代码报错,全红,但又能正常编译。整理出了四种方法,供大家参考。


一、自带清除缓存

点击AndroidStudio菜单File -> Invalidate Caches/Restar… ,在弹出的对话框中点击Invalidate and Restar 

。等待AS清理并自动重启。 

 

二、删除user目录下.AndroidStudio中的文件

但我发现使用网上说的第一种方案不行,那么我就又查了下,用了其他的方法


关闭AndroidStudio,进入C:\Users\xUser.AndroidStudio3.1(3.1为当前AS版本号),删除除了config以外的文件。重新打开AndroidStudio会自动Sync,等待同步完成。 



三、删除user目录下.gradle

关闭AndroidStudio,删除C:\Users\xUser\.gradle。重新打开AndroidStudio会自动Sync,等待同步完成。 

注意:删除该文件夹所有的classpath、gradle、compile、implementation等,都需要重新从网上同步。 


四、删除工程目录下.gradle、.idea

关闭AndroidStudio,进入工程根目录,删除.gradle、.idea两个文件夹。重新打开AndroidStudio会自动Sync,等待同步完成。 


这么操作以后,就不会变红了,正常编译,但可能在运行的时候有另外的错误,上网查了下,一块解决了


报错“Error running ***: Please select Android SDK”

可能是刚刚在删除的时候,把一些配置给删除了,重新更新SDK被损坏的文件即可。解决办法如下:

首先依次选择主菜单“File”——“Settings”,菜单路径如下图所示:


上述菜单操作打开设置窗口,然后依次展开“Appearance & Behavior”——“System Settings”——“Android SDK”,在右边的设置界面编辑SDK的路径。如下图所示,单击SDK目录输入框右边的“Edit”链接(红框标注):


单击“Edit”链接之后打开SDK的设置界面如下图所示,这里SDK的目录保持不动,单击页面下方的“Next”按钮,在下一个页面继续单击“Next”按钮,等待Android Studio下载最新的编译工具,我这边是下载了最新的27.0.2版的build-tools。下载完成后单击页面右下角的“Finish”按钮完成更新操作。



回到Android Studio的主界面,此时会自动同步编译工具并重新编译,等待重编完成,即可正常执行Run app的操作了。


  • 2020-11-22 23:14:52

    Dagger 2 在 Android 上的用法

    在前面的文章我们介绍了Dagger2 中的大部分注解的使用,接下来我们从源码角度分析下第一篇文章中例子的原理。

  • 2020-11-22 23:18:59

    Android开发从Dagger2迁移至Kodein的感受

    最近个人在尝试构建 Kotlin版本 的Android MVVM开发框架,在依赖注入框架的选型上,我最终选择了 Kodein 。这是一个非常轻量级的DI框架,相比于配置繁琐的Dagger(繁琐的配置也是导致Dagger学习成本一直居高不下的原因!),它的配置过程更清晰且简单,并且,这个库的源码也是 Kotlin 的。

  • 2020-11-22 23:25:56

    Dagger2源码解析inject过程

    添加inject后,通过编译生成的DaggerMainComponent类来导入,说明编译以后生成了一些类,那到底生成了什么类呢。 Module和Component又是什么,该怎么里理解 在这篇文章后里将一一讨论。

  • 2020-11-22 23:27:28

    dagger学习教程

    dagger android 学习(一):dagger基础使用 dagger android 学习(二):AndroidInjector的使用 dagger android 学习(三):ContributesAndroidInjector的进一步优化 dagger android 学习(四):基于dagger2的mvp架构

  • 2020-11-22 23:31:22

    Dagger2与AndroidInjector详解

    相信使用过Dagger开发Android应用的小伙伴会知道(如果你还不是很了解Daager,可以先看我之前的一篇基本介绍:Dagger2使用攻略),我们会在Activity或Fragment的生命周期方法中执行成员注入。比如这样:

  • 2020-11-23 08:52:59

    asm.js 和 Emscripten 入门教程

    asm.js 就是为了解决这两个问题而设计的:它的变量一律都是静态类型,并且取消垃圾回收机制。除了这两点,它与 JavaScript 并无差异,也就是说,asm.js 是 JavaScript 的一个严格的子集,只能使用后者的一部分语法。

  • 2020-11-23 09:11:07

    爬虫——记一次破解前端加密详细过程

    从最初使用webdriver+selenium爬虫到现在利用http请求解析html,经历过各种各样的问题,webdriver+selenium这种办法虽然万能,而且可以用JS写解析脚本方便调试,

  • 2020-11-24 19:18:43

    nuxtjs打成用于webview的相对路径

    路径为绝对路径,当项目的域名为二级域名的时候,就不能打包为这绝对路径了。 nuxt不同于vue项目,思索了许久,终于找到了配置的地方