前言
开始的目的是想学Flutter ,于是就去配置了Flutter的环境变量,下载的IDEA, Idea也安装了Flutter和Dart插件。
但是后来发现可能需要安装Android SDK环境,开始也不是很清楚,于是就Android studio.
后来才发现,Android studio是一个IDE,于是觉得从Android studio中下载SDK不方便,能不能不要Android studio ,只安装SDK. 后来一顿折腾,发现是可以得。才有了下面我遇到的问题!
问题
在这个过程中,遇到的问题很多,有下面的这些
1. Android license status unknown
2. A newer version of the Android SDK is required. To update, run:
/Users/***/Android/sdk/tools/bin/sdkmanager --update
3. Warning: An error occurred during installation: Failed to move away or delete existing target file: C:\ProgramFiles\android-sdk-windows\toolsMove it away manually and try again..done
4. 这些问题最后会遇到一个SDK Manager 闪退,无法打开。
本来的流程
从网上下载了一个SDK android-sdk_r24.4.1-windows.zip
运行里面的SDK Manager.exe 下载各种需要的文件,这个没有保存到截图。
弄完之后,在cmd 下面执行flutter doctor
就报了下面的错误
Android license status unknown
百度了很多文章都是说要求执行flutter doctor --android-licenses,
然后报下面的错,要求更新SDK
newer version of the Android SDK is required. To update, run: C:\ProgramFiles\android-sdk-windows\tools\bin\sdkmanager --update
其实我在执行sdkmanager --update遇到的错有时候不一样,有下面的错误
Failed to move away or delete existing target file: C:\ProgramFiles\android-sdk-windows\tools
百度了很多教程,是说把tools 改名成tool,然后再执行,从这句话的意思,就是他想删除tools文件,我也改名是有道理的,于是就做了。
有几次改名弄完之后,可以加licenses. 但是都会遇到SDK Manager 闪退,无法打开。
后来我发现SDK Manager 闪退,无法打开是因为在E:\Software\android\android-sdk_r24.4.1-windows\android-sdk-windows\tools\lib 下面执行SDK Manager.exe的问题,会有下面的错误,你也可以试试自己的是不是和我一样
后面百度了一些,发现有个帖子说的方法给了我一些启发
http://www.knowsky.com/974848.html
其实它的方法可以让SDK Manager.exe重新启动,但是又有了开始的Android license status unknown
这样 就又绕回去了。
思考和梳理
其实这个问题我已经弄块一个星期了。 我上面的帖子确认了几点,
1. 要覆盖tools里面的文件,要下载的SDK版本和tools版本一致,我SDK是android-sdk_r24.4.1-windows.zip, tools是tools_r25.2.5-windows.zip
2. tools 需要重名成tool,如果需要的话,再试一下把里面的文件按照帖子的方法试一遍
最后的解决方法
我下载了tools_r25.2.5-windows.zip,
解压tools文件夹到android-sdk-windows文件夹里面,是我ANDROID_HOME的配置环境变量的目录
执行tools下面的android.bat
他会自动下载SDK等等一些东西。
下载完成你会发现它的目录是这样的,tools_r25.2.5-windows是刚才解压的,tool是我后面的操作重名的,不要管
等待完成,cmd 输入 flutter doctor
依然提示 Android license status unknown
接着输入 flutter doctor --android-licenses
如果提示你 Accept? (y/N): 输入y
其实我遇到的是
A newer version of the Android SDK is required. To update, run: C:\ProgramFiles\android-sdk-windows\tools\bin\sdkmanager --update
于是我按照它的提示,运行了它run:后面的那句话,它的意思是调用\tools\bin\下面的sdkmanager --update
别人一样都这就差不多可以了,但是我遇到了的
Failed to move away or delete existing target file: C:\ProgramFiles\android-sdk-windows\tools
这样时候我就把tools 重命名为 tool
再重复sdkmanager --update
它会再目录下载重生成一个tools目录
最后我执行
flutter doctor --android-licenses
连续的y,y,y
最后执行flutter doctor 就没有Android license status unknown的错误了
最后你就发现操作下面就没有这两个文件
没有关系,从\tool\android.bat来启动
其实\tools\android.bat 启动不了。我郁闷啊,我写完这些字的时候,可能我的问题还没有解决。希望有帮到你。