Android Studio构建
1、Gradle总是要重新下载或者一直下载不下来
- 下载gradle-3.2-all.zip一直卡住,由下图可以知道gradle的下载地址https://services.gradle.org/distributions/
- 进入gradle的官方网站,手动下载对应的gradle文件
- 将上面下载好的gradle文件,存放在C:\Users\Administrator\.gradle\wrapper\dists\对应目录
其实android studio在打开某个工程的时候,会根据工程目录的gradle-wrapper.properties文件里面的配置来进行同步或下载对应的gradle版本,例如下图中配置的是gradle-3.2-all.zip,因此android studio就会gradle sync:Download https.....
android stuido会把所有的gradle存放在C:\Users\Administrator\.gradle\wrapper\dists\里面,注意studio会在对应的目录下生成一个随机id文件,我们只需要把手动下载好的gradle-xxx-all.zip文件复制进去(注意不要删除part和lck文件),然后重启android stuido就不会再去同步gradle了,会自动解压。
2、Could not find com.android.tools.build:gradle:4.6.0
上面过程已经将gradle插件手动替换,但是重启android studio出现上述错误,找不到tools.build:gradle:4.6.0,具体错误如下:
Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find
com.android.tools.build:gradle:4.6. Searched in the following locations:
https://jcenter.bintray.com/com/android/tools/build/gradle/4.6/gradle-4.6.pom
https://jcenter.bintray.com/com/android/tools/build/gradle/4.6/gradle-4.6.jar
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/4.6/gradle-4.6.pom
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/4.6/gradle-4.6.jar
这什么鬼,不是已经手动替换了gradle了吗,为什么还找不到4.6版本的gradle呢,最后才发现是找不到tools.build:gradle:4.6,其实这里有两个概念搞混淆了:
- distributionUrl:该地址指向gradle路径,被配置在gradle-wrapper.properties文件中,如下:
- tools.build依赖版本:被配置在app的build.gradle文件里面,网上是这样说的"构建需要依赖的gradle版本,具体的需要参考上面的文件的配置",其实我也不知道他跟上面文件定义的有什么关联,但现在知道了他们描述的东西肯定不一样。所以distributionUrl和tools.build都填4.6的时候,会出现找不到4.6版本的插件(也有人说gradle指定依赖版本是3),当都配置3.2的时候出现distributionUrl低版本不支持google(),可以参考https://stackoverflow.com/questions/49505245/could-not-find-com-android-tools-buildgradle4-4
PS:dependencies是依赖版本,一般都是在3.xxx,切忌不要和distributionUrl搞混淆了,而导致我们android studio一直同步或者下载不下来的问题是distributionUrl的原因,这个时候我们可以手动替换插件,但是一定不要把dependencies与这个版本号统一,否则就会出现意想不到的问题。至于其中具体原因有待研究。。。
3、Android sdk location should not contain whitespace,as this can cause problem with the NDK tools
在进行NDK开发的时候,c++代码总是没有补全功能,native方法总是红色标记,但是能够编译通过并允许,这就很神奇了,打开ndk sdk配置的地方出现上面信息。翻译过来就是Android SDK的路径不应该包含空格,这会导致NDK一些工具出现问题,好吧,卸载更改sdk路径,c++代码自动补全功能OK,在此之前,翻阅了网上很多帖子说是android studio的版本问题,很明显这个答案是错误的。
4、Enable VT-x in your BIOS security settings
打开AVD创建虚拟机的时候,报出Enable VT-x in your BIOS secutity settings错误(如下图),这什么鬼呢,用有道翻译“在bios安全设置中启用vt-x,确保linux发行版具有可工作的kvm模块”。
好吧我在bios里面设置启用VT-X,进入在BIOS中的CPU Config开启Intel-Virtualization Technology选项。
华硕主板设置:F2(进入BIOS设置)-->F7(进入配置模式)-->Advance-->CPU Configuration-->Intel-Virtualization Technology-->Enabled-->F10(保存配置重启电脑)
然而在进行BIOS的过程中发现,Intel-Virtualization-Technology已经被使能了的,这什么鬼情况呢,冷静一下,先检查下SDK有没有安装HAXM,其安装路径如下:
如果没有内容的话,打开SDK Manager安装HAXM
这什么鬼情况呢,SDK已经安装过HAXM了,为什么还给我来报/dev/kvm is not found呢?查阅各种资料,来进行重装HAXM吧,其步骤如下:
- 执行命令Bcdedit -set TESTSIGNING ON并重启电脑
- 点击安装上面路径下的intelhaxm-android.exe,可能会出现Remove(先卸载HAXM完成后点击该文件进行重新安装),在安装的时候弹出错误对话框,不要点击OK或者finish(因为点击后会将安装数据全部删除),先进行备份保存这些数据,其路径如下:
- 在保存了上面的HAXM目录后,点击OK,这时会发现C:\Program Files\Intel\目录下已经没有HAXM文件夹了,将上面备份的HAXM目录复制过来(temp临时文件不用拷贝)
- 执行命令Bcdedit -set TESTSIGNING OFF并重启电脑
- 检查是否重装HAXM成功,执行命令sc query intelhaxm,如果状态是running就大功告成
这个时候HAXM已经重装成功了,重启Android Studio并打开AVD创建虚拟机,出现如下界面:
尼玛什么鬼啊,要崩溃了,死马当活马医点击Install Haxm重新安装,安装完成后重启AVD,搞定,上面的红色提示已经没有了,终于可以愉快的创建模拟器并启动了