Flutter 颤振生成失败,地理位置插件出现异常

Flutter 颤振生成失败,地理位置插件出现异常,flutter,dart-pub,flutter-dependencies,Flutter,Dart Pub,Flutter Dependencies,每当我试图包含flattergeolocation()插件时,我都会遇到以下错误 Initializing gradle... Resolving dependencies... Running 'gradlew assembleDebug'... registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection) registerResGeneratingTask is deprecated

每当我试图包含flatter
geolocation
()插件时,我都会遇到以下错误

Initializing gradle...
Resolving dependencies...
Running 'gradlew assembleDebug'...
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

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

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

BUILD FAILED in 3s
Finished with error: Gradle build failed: 1
我的
publispec.yml
依赖项列表为

dependencies:
  flutter:
    sdk: flutter
  google_sign_in: "^3.0.2"
  firebase_auth: "^0.5.5"
  shared_preferences: "^0.4.1"
  cloud_firestore: "^0.7.2"
  firebase_storage: "^0.2.5"
  image_picker: "^0.4.1"
  progress_hud: "^0.2.2"
  cached_network_image: "^0.4.1"
  intl: "^0.15.6"
  path: "^1.5.1"
  geolocation: "^0.2.1"
我的
app>build.gradle
code

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 27

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.bhramaan.bhramaan"
        minSdkVersion 16
        targetSdkVersion 27
        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.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

apply plugin: 'com.google.gms.google-services'

出什么问题了?

我有三点建议可以帮助你。第一种方法是先运行
flatterclean
,然后再次运行,以执行完全重建。有时候,flutter和android之间的事情会变得有点混乱,这会有所帮助

接下来我要做的是检查你得到的所有播放服务的版本是否相同。出于某种原因,格拉德卢有时会把事情搞砸。从
android
运行
gradlew应用程序:dependencies
(如果您在mac/linux上,则运行
/gradlew
)。如果您得到不同的版本,请将它们全部添加为同一版本的依赖项

例如,在我的
android/app/build.gradle
中,我必须设置

implementation 'com.google.android.gms:play-services-base:15.0.2'
implementation 'com.google.android.gms:play-services-vision:15.0.2'
即使格拉德尔应该解决这个问题。特别要注意
com.google.android.gms:play services location
,因为它是地理定位软件包的依赖项。同样的情况也适用于
com.android.support


如果仍然不起作用,请尝试直接运行gradle构建,特别是查看堆栈跟踪(
android
文件夹中的
gradlew应用程序:build--stacktrace
),看看它是否告诉您什么。然后你可以发布这些信息,或者看看一般的Android问题,寻找解决方案。可能您需要启用multi-dex,尽管我不这么认为。

我可以建议三件事来帮助您。第一种方法是先运行
flatterclean
,然后再次运行,以执行完全重建。有时候,flutter和android之间的事情会变得有点混乱,这会有所帮助

接下来我要做的是检查你得到的所有播放服务的版本是否相同。出于某种原因,格拉德卢有时会把事情搞砸。从
android
运行
gradlew应用程序:dependencies
(如果您在mac/linux上,则运行
/gradlew
)。如果您得到不同的版本,请将它们全部添加为同一版本的依赖项

例如,在我的
android/app/build.gradle
中,我必须设置

implementation 'com.google.android.gms:play-services-base:15.0.2'
implementation 'com.google.android.gms:play-services-vision:15.0.2'
即使格拉德尔应该解决这个问题。特别要注意
com.google.android.gms:play services location
,因为它是地理定位软件包的依赖项。同样的情况也适用于
com.android.support


如果仍然不起作用,请尝试直接运行gradle构建,特别是查看堆栈跟踪(
android
文件夹中的
gradlew应用程序:build--stacktrace
),看看它是否告诉您什么。然后你可以发布这些信息,或者看看一般的Android问题,寻找解决方案。可能是您需要启用multi-dex,尽管我不这么认为。

我认为这是地理定位gradle版本的firebase和您的Flatter版本不兼容的问题。尝试将
multiDexEnabled true
添加到构建渐变中。如果这还不能解决问题,请在android studio中打开您的Flatters android项目,转到地理位置构建gradle,并将依赖项版本更改为
classpath'com.android.tools.build:gradle:3.1.2'
&在底部将播放服务更新为
api“com.google.android.gms:play services location:15.+”

我认为这是地理定位gradle版本的firebase和您的Flitter版本不兼容的问题。尝试将
multiDexEnabled true
添加到构建渐变中。如果这还不能解决问题,请在android studio中打开您的Flatters android项目,转到地理位置构建gradle,并将依赖项版本更改为
classpath'com.android.tools.build:gradle:3.1.2'
&在底部将播放服务更新为
api”com.google.android.gms:play services location:15.+”
最后,我已经按照@rmtmckenzie提到的步骤解决了这个问题

在我的
android/app/build.gradle中,我添加了以下代码&

configurations.all {
    resolutionStrategy {
        force 'com.google.android.gms:play-services-location:15.0.1'
    }
}
并已启用
multiDexEnabled true

defaultConfig {
    multiDexEnabled true
}

现在有了这个设置,我的整个应用程序工作正常

最后,我按照@rmtmckenzie提到的步骤解决了这个问题

在我的
android/app/build.gradle中,我添加了以下代码&

configurations.all {
    resolutionStrategy {
        force 'com.google.android.gms:play-services-location:15.0.1'
    }
}
并已启用
multiDexEnabled true

defaultConfig {
    multiDexEnabled true
}

现在有了这个设置,我的整个应用程序工作正常

在应用程序的顶级build.gradle更新类路径中。为了我
classpath'com.android.tools.build:gradle:3.5.3'运行良好

在应用程序的顶级build.gradle更新类路径中。为了我
classpath'com.android.tools.build:gradle:3.5.3'运行良好

可能有suggestions@G我已经检查过了。但是,直到现在都没有运气。可能有suggestions@G我已经检查过了。但是,到目前为止运气都不好。谢谢你提供的信息。但是,我不太熟悉所有这些安卓配置级别的东西。我尝试了
flatterclean
。但是,这不起作用。试图运行那些
gradlew app:dependencies
&
/gradlew
命令,但这些命令也不起作用。也许我需要在我的系统上安装Gradle。但Gradle网站似乎比昨天有所下降。我已经在帖子中发布了我的app>build.gradle文件。是否有任何错误,这可能会导致这个问题。谢谢你的信息。但是,我不太熟悉所有这些安卓配置级别的东西。我尝试了
flatterclean
。但是,这不起作用。试图运行那些
gradlew app:dependencies
&
/gradlew
命令,但这些命令也不起作用。也许我需要在我的系统上安装Gradle。但Gradle网站似乎比昨天有所下降。我已经在帖子中发布了我的app>build.gradle文件。这里面有什么不对劲吗