无法在 Android 设备上运行 Flutter 项目:ProcessException: gradlew异常退出

Posted

技术标签:

【中文标题】无法在 Android 设备上运行 Flutter 项目:ProcessException: gradlew异常退出【英文标题】:Unable to Run Flutter project on Android device : ProcessException: gradlew exited abnormally 【发布时间】:2019-05-07 19:54:35 【问题描述】:

以错误结束:

ProcessException:进程“/my_project_directory/android/gradlew”异常退出: env: bash\r: 没有这样的文件或目录

命令:/my_project_directory/android/gradlew -v

原因:org.gradle.api.UncheckedIOException:java.net.URISyntaxException:索引 2 处不透明部分中的非法字符:C:\Users\Harsh\ Desktop\StandardAppStructureFlutter\lib\ui\page_login.dart 在 org.gradle.api.internal.file.FileOrUriNotationConverter.convert(FileOrUriNotationConverter.java:119) FlutterTask.getSourceFiles(/Users/harshbhavsar/Desktop/flutter/packages/flutter_tools/gradle/flutter.gradle:604)

当我尝试在任何 Android 设备上运行 Flutter 项目时,它会显示 ProcessException。它可以与 ios 模拟器一起使用,但无法在 Android 设备上运行。

版本:

Flutter(Channel master,v1.0.1-pre.2,Mac OS X 10.13.6 17G3025,语言环境 en-IN)

Dart 2.1.0(构建 2.1.0-dev.9.4 f9ebf21297)

Android Studio(3.2 版)

Android 工具链 - 为 Android 设备开发 (Android SDK 28.0.3)

同样使用flutter pubspec.yaml中的包列表

dependencies:
  flutter:
    sdk: flutter
  connectivity:
  http: ^0.12.0
  path_provider:
  validate: ^1.7.0
  image_picker: ^0.4.10
  shared_preferences: "^0.4.2"
  firebase_auth: ^0.6.2+1
  flutter_facebook_login: ^1.1.1
  flutter_staggered_grid_view:
  dio:
  google_sign_in:
  cupertino_icons: ^0.1.2

我的应用级 Gradle

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) 
    localPropertiesFile.withReader('UTF-8')  reader ->
        localProperties.load(reader)
    


def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) 
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")


apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android 
    compileSdkVersion 28
    buildToolsVersion '28.0.3'

    lintOptions 
        disable 'InvalidPackage'
    

    defaultConfig 
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.standardappstructure"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    

    buildTypes 
        release 
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        
    


flutter 
    source '../..'


dependencies 
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'


apply plugin: 'com.google.gms.google-services'
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true

【问题讨论】:

【参考方案1】:

转到安装 Flutter SDK 的路径我的 Flutter SDK 路径

即:C:\Flutter SDK\flutter\packages\flutter_tools\gradle

通过移动编辑flutter.gradle文件

 maven 
    url 'https://dl.google.com/dl/android/maven2'
 

到 jcenter() 上方的嵌套存储库标记,如图所示

i.e. flutter.gradle file buildscript section will look like this
buildscript 
    repositories 
        maven 
            url 'https://dl.google.com/dl/android/maven2'
        
        jcenter()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:3.1.2'
    

或点击此链接: Couldn't locate lint-gradle-api-26.1.2.jar for Flutter project

如果这不起作用 运行以下命令

flutter doctor 

然后你可以探索问题 也尝试更改 Android SDK 版本**

【讨论】:

试过这个。不工作。~此外,如果我正在创建新项目,那么它可以在 Android 和 IOS 上运行!【参考方案2】:

Gradle 尚未在系统上正确安装。

创建一个 Android Studio 项目(不是 Flutter 项目)。 单击构建,它将安装所需的文件。

【讨论】:

以上是关于无法在 Android 设备上运行 Flutter 项目:ProcessException: gradlew异常退出的主要内容,如果未能解决你的问题,请参考以下文章

无法在物理 Apple 设备上运行颤振应用程序

Flutter 无法仅在物理 iOs 设备中构建和运行 iOS 应用程序

我的颤振项目无法在 Android 设备上运行,并且提到了一些许可证问题

Flutter_tts 无法在 iOS 上运行

Flutter 应用程序在 Android 模拟器上运行,但不在物理设备上(OnePlus 7T)

Flutter 应用程序无法在真实设备或模拟器上运行