(前言部分有点日记性质,对整个历程做了一个概况,如果你时间紧迫,可以跳过这部分直接看正文部分
,正文部分
分点分部分给出问题的描述和对应的解决方法)
去年差不多也是这个时候,补了TensorFlow的坑,今年补AS的,莫名倒是有点喜感。
话说前头,这里强调一下,本文所有下载加载过程都是没有使用V**的,也就是说不用访问外国网站,但!!!需要优质的网络,优质的网络!!就是,昨天之前的话本文这些坑笔者怕是要费好大力气才搞的定,因为昨天在学校,要么用校园网——绝对填不了这些坑,点击AS的help菜单里面的check for updates以及SDK Manager的安装检测都被和谐掉了;要么用流量或者,找一个不是校园网的网络。。。在学校这显然也挺折腾的
废话不多说,解释一下标题,好多坑对吧,其实本文所有坑的起因,就是我寒假要开始了解NDK开发了,NDK开发之前我们需要搭一个环境,
在搭环境的时候,需要更新各种SDK各种tools,于是便到SDK Manager那边更新了一波SDK Platform 或SDK Tools (SDK和NDK等等包都更新到最新版),更新完之后,便开始出现各种错误了,
解决之后
模拟器变成了初代Android机?很骚;具体目录:
NDK环境的搭建其实很简单,关键是找到一个相对优质网络,网速快,不要有什么对应的限制(不用访问外国网站,但是校园网是不行的), 具体操作:
把 AS 2.3.3更新到最新版本(文章是3.0.1,现如今最新版本已是3.3了);
**
Waiting for target device to come online
**,我们通过更新SDK Tools 解决;** 第二:解决第一个问题之后,运行程序,模拟器变成初代安卓机的问题,我们更新了Android Studio到最新版本,没有解决这个问题;
觉得SDK Tools没问题啊,都已经更新到最新版本了;SDK Tools是没问题,可你忘了SDK Platforms(原来用的模拟器是 API 24的):
行吧那更新一波:
进入AVD Manager(截图中API 24 的那个模拟器已经看不到了,因为被笔者删了...):
Download一下新的API:
然后Next,Finish即可:
发现它完全不买账对吧,AS2.3.3的产物根本就不想理你AS3.3的IDE,app的build.gradle文件都跟刚刚成功运行的Helloworld项目一模一样,可复制到了旧项目就是不行;
Add Google Maven repository and sync project
嘛,就是在根目录(注意是根目录,IDE的报错都把你引到app目录下了)对应的build.gradle中加入google()
和mavenCentral()
即可:(参考文章Android Studio 3.0 踩坑记录)
allprojects {
repositories {
jcenter()
google()
mavenCentral()
}
}
No toolchains found in the NDK toolchains folder for ABI with prefix: mipsel64el-linux-android
**首先, 关于参考文章:No toolchains found in the NDK toolchains folder for ABI with prefix: mipsel64el-linux-android 这篇文章的参考价值是它给了我NDK的下载地址,然而它的解决方法并不太适合笔者的情况。 文中说明这情况报错的原因是NDK包缺失。参考这篇文章, 到官网上下载对应的包,切取缺失的文件到本地ndk目录即可。这里官网是需要访问外国网站的,所以其实它适合的情况是你AS原来的NDK包是你自己去网上找来下载的,由此缺失时,可以用这种方法。 但其实我们到SDK Manager这里,只要网络质量好一些,是可以直接下载的,不用访问外国网站;
所以笔者是因为什么情况报这个错呢? 笔者不是因为包的缺失,我们看报错里面的关键词——No toolchains,再看一下官网对于NDK 19的描述——“不需要独立的工具链”,“Clang会自动找到它们”,看到这里其实可以说是水落石出了;
究其原因,应该就是“不需要独立的工具链”,“Clang会自动找到它们”这个新特性对于AS2.3.3来说,没能Hold住,因此报错, No toolchains,其实人家r19都不需要toolchains,自然就No toolchains呗,只是AS2.3.3没有Hold住Clang而已。
所以若是基于AS2.3.3把NDK包更新到最新版的r19报这个错,只要升级一下AS到最新版(如笔者AS3.3),便解决了。