Flutter开发之AndroidStudio在安卓模拟器运行flutterApp(13)

如果帮你解决问题,记得关注+点赞。

历时一周,终于在安卓模拟器跑起来了。。。感动到哭!!!
一直iOS 模拟器没有问题,可是安卓模拟器,无论是 VS Code 还是AndroidStudio 都运行不了flutterApp。一直在探索哪里出了问题。今天终于跑起来了,先是在自己电脑搞定的,由于公司电脑无法上外网,所以耗费了很长时间。建议自己先用自己电脑连家里的wifi 去配置安卓模拟器环境。

    开始最新的 3.4.1 版本有问题。请下载AndroidStudio 3.2.1 版本安装。


首先贴下出现的问题:

第一:Flutter 运行 一直Initializing gradle…

1.是因为gradle 被墙。所以下载本地。
gradle-4.10.2-all可以在网站:http://services.gradle.org/distributions/ 上免费下载。该网站提供几乎所有的gradle版本下载,找到你需要的版本直接下载。
Flutter开发之AndroidStudio在安卓模拟器运行flutterApp(13)_第1张图片
找到gradle-4.10.2-all 下载到本地桌面

第二:gradle 安装失败问题

Launching lib/main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
* Error running Gradle:
ProcessException: Process "/Users/suning/Desktop/flutterdemos/flutter_demo/android/gradlew" exited abnormally:

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'android'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not resolve com.android.tools.build:gradle:3.2.1.
     Required by:
         project :
      > Could not resolve com.android.tools.build:gradle:3.2.1.
         > Could not get resource 'https://maven.aliyun.com/repository/google/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'.
            > Could not GET 'https://maven.aliyun.com/repository/google/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'.
               > http://it.cnsuning.com/zongbu.pac: nodename nor servname provided, or not known
      > Could not resolve com.android.tools.build:gradle:3.2.1.
         > Could not get resource 'https://maven.aliyun.com/repository/jcenter/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'.
            > Could not GET 'https://maven.aliyun.com/repository/jcenter/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'.
               > http://it.cnsuning.com/zongbu.pac
      > Could not resolve com.android.tools.build:gradle:3.2.1.
         > Could not get resource 'http://maven.aliyun.com/nexus/content/groups/public/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'.
            > Could not GET 'http://maven.aliyun.com/nexus/content/groups/public/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'.
               > http://it.cnsuning.com/zongbu.pac

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 5s
  Command: /Users/suning/Desktop/flutterdemos/flutter_demo/android/gradlew app:properties

Finished with error: Please review your Gradle project setup in the android/ folder.

看到上面的你肯定疯了,不要急,我来帮你。记得关注+点赞。

1. 上面错误提示:

Could not resolve all artifacts for configuration ':classpath'.
   Could not resolve com.android.tools.build:gradle:3.2.1.

提示:classpath 对应的版本找不到

2.

Could not get resource 'https://maven.aliyun.com/repository/google/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'.

这个句:我们大概知道是拿不到对应路径下的资源。我们可以copy 链接去路径下

https://maven.aliyun.com/mvn/view 下查看报错的路径下有没有,我当时看的是没有gradle-3.2.1的。现在好像又有了gradle-3.2.1。总之gradle-3.2.1不太靠谱,改使用gradle-3.1.2。

3.

http://it.xxxx.com/zhongbu.pac: nodename nor servname provided, or not known

这一句:是因为公司是代理上网,说明你的网络设置了代理节点。想办法去掉代理,下面全部取消勾选。
Flutter开发之AndroidStudio在安卓模拟器运行flutterApp(13)_第2张图片
解决步骤:

gradle 配置修改

  1. 首先确保网络无代理,外网畅通
  2. 修改Flutter工程下android工程下 build.gradle文件,修改成如下:
buildscript {
    repositories {
        //google()
        //jcenter()
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
    }
}

allprojects {
    repositories {
        //google()
        //jcenter()
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
    }
}
  1. 在你安装的FlutterSDK路径下修改flutter.gradle 文件
    位置路径:/Users/xxx/Flutter_SDK/flutter/packages/flutter_tools/gradle/flutter.gradle
buildscript {
    repositories {
       //jcenter()
//maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
    }
}

gradle-4.10.2-all.zip 配置修改

  1. Command + shift +G 跳转: /Users/你的用户名/.gradle/wrapper/dists/

9fahxiiecdb76a5g3aw9oi8rv 这个是随机的文件名,你的可能不一样。将下载的桌面的gradle-4.10.2-all.zip copy 到此文件下,双击解压。
Flutter开发之AndroidStudio在安卓模拟器运行flutterApp(13)_第3张图片

  1. 修改过程的 gradle下载地址
    找到项目中的android->gradle->wrapper->gradle-wrapper.properties:
    distributionUrl=file: 修改为本机4.10.2.all.zip的路径

    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists 
    distributionUrl=file:/Users/xxx/.gradle/wrapper/dists/9fahxiiecdb76a5g3aw9oi8rv/gradle-4.10.2-all.zip
    

加粗的名字要和上面存放zip的一直。 如下图:保存重启AndroidStudio
Flutter开发之AndroidStudio在安卓模拟器运行flutterApp(13)_第4张图片

总结:如果你做好以上步骤,重启AndroidStudio 选中安卓模拟器,run 即可。或者在工程终端栏运行:flutter run 等待运行。。。

运行起来的效果,此处应该插播一个喽诶楼诶的世界杯的音乐!!!
????????
Flutter开发之AndroidStudio在安卓模拟器运行flutterApp(13)_第5张图片
如果还不成功,不要担心,多重启几次。

补充尝试过程

  1. Android 5.0(Lollipop)没下载的话 install 一下
    Flutter开发之AndroidStudio在安卓模拟器运行flutterApp(13)_第6张图片

  2. 偏好设置下面也勾选一下
    Flutter开发之AndroidStudio在安卓模拟器运行flutterApp(13)_第7张图片

Android Studio之回退Gradle版本方法 (Minimum supported Gradle version is 5.1.1. Current version is 4.10.2)

这个问题是由于 Android Studio 我从3.2.1 升级到3.4.2 然后修改了gradle
修改build.gradle(Project )中gradle的版本,根据实际情况把版本改低或改高。

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
    }

改成

    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
    }

Flutter. 也同步改成了
Macintosh HD⁩ ▸ ⁨用户⁩ ▸ ⁨suning⁩ ▸ ⁨Flutter_SDK⁩ ▸ ⁨flutter⁩ ▸ ⁨packages⁩ ▸ ⁨flutter_tools⁩ ▸ ⁨gradle⁩ ▸ flutter.gradle文件也修改了

    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
    }

造成的。

有两种解决方案:
  • 第 1 种就是把修改了还原回去
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
    }

编译正常

  • 第 2 种就是把修改了还原回去
    下载指定的gradle-5.1.1 版本替换4.10.2的位置即可。
    gradle-5.1.1下载地址https://services.gradle.org/distributions/
    Flutter开发之AndroidStudio在安卓模拟器运行flutterApp(13)_第8张图片

总结:这一问题花费很长时间,不过失败很多次都没放弃,最终也尝到了成功的喜悦!值得了。

如果帮你解决问题,记得点赞+关注哦。

你可能感兴趣的:(Flutter开发教程)