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的操作了。


  • 2019-02-19 10:01:55

    node下使用open模块在指定浏览器下打开url

    最近在做一个项目的过程中,得到一个远程二维码图片的url,需要扫码登录,每次都是在控制台发url打印出来,再复制粘贴到浏览器的地址栏中打开扫码,整个过程过于繁琐,于是想找一个模块,直接在node下,指定浏览器打开该图片。这样可以省不少事。

  • 2019-02-24 09:47:09

    解决Node.js的命令行输出中文乱码问题(也适用于Electron)

    ​一般我们的js文件都是试用utf8编码保存的,但是中文windows的命令行一般默认使用cp936编码(就是gbk),这样我们用js代码 console.log('中文');输出日志的时候,会发现输出的是乱码。 网上有提供一些解决方案,典型的就是用iconv或iconv-lite,把这些中文字符串先转成gbk再输出。 但是这个方案我试了多次,在win10的命令行下,utf8的字符串是成功转成了gbk字符串了(通过打印Buffer可以见到),但是输出还是乱码。

  • 2019-02-25 10:05:41

    Android Socket连接(模拟心跳包,断线重连,发送数据等)

    因为是要保证全局只能有一个连接,而且我们还需要在不同的Activity中发指令,因此肯定不能在需要发指令的界面中都去连接socket,这样一来不好管理,性能也不好,重复代码也会比较多,所以想了一下还是把socket放到service中比较好,发指令功能都放在service中即可。

  • 2019-02-28 15:54:24

    HTTP协议缓存策略深入详解之ETAG妙用

      HTTP协议规格说明定义ETag为“被请求变量的实体值” 。另一种说法是,ETag是一个可以与Web资源关联的记号(token)。典型的Web资源可以一个Web页,但也可能是JSON或XML文档。服务器单独负责判断记号是什么及其含义,并在HTTP响应头中将其传送到客户端。

  • 2019-02-28 16:46:26

    android获取视频、图片时添加防盗链

    使用HTTP协议时,可以利用头信息中的Referer做防盗链。 我们在一些网站的网页里访问图片的时候,在图片本站是可以正常看到的,但在外头就不能看到了,这是因为在http的header信息中的referer元素。