Я работаю над этим вопросом целых 2 дня и уже не приблизилась к решению этой проблемы.
Я использую флаттер, и после прохождения учебника по кодовым меткам для firebase я попытался добавить местоположение в микс. Мои зависимости в pubspec.yaml, build.gradle и app / build.gradle выглядят так:
pubspec.yaml
dependencies:
flutter:
sdk: flutter
# image_picker: 0.1.1 # new
# google_sign_in: 0.3.1 # new
# firebase_analytics: 0.0.4 # new
# firebase_auth: 0.2.0 # new
firebase_database: 0.0.12 # old
firebase_storage: 0.0.5 # old
# firebase_database: 0.4.6 # new
# firebase_storage: 0.3.3 # new
location: "^1.2.0"
build.gradle
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.google.gms:google-services:3.1.0'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Приложение / build.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 27
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.takaoandrew.flutteralight"
minSdkVersion 21
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
// multiDexEnabled true
}
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'
// compile ("com.google.android.gms:play-services-base:10.0.1") {
// force = true;
// }
// compile ("com.google.android.gms:play-services-tasks:10.0.1") {
// force = true;
// }
// compile ("com.google.android.gms:play-services-basement:10.0.1") {
// force = true;
// }
}
apply plugin: 'com.google.gms.google-services'
Ошибка, которую я получаю, это
Не удалось выполнить задачу ': app: preDebugBuild'.
Зависимость Android 'com.google.android.gms: play-services-base' имеет разные версии для пути к классам компиляции (11.0.4) и времени выполнения (11.8.0). Вы должны вручную установить ту же версию через DependencyResolution
Я пытался вручную переопределить свои игровые сервисы, но я не знаю, как это сделать с флаттером. Еще когда был весь андроид, я сам выбрал номер версии. Раскомментируйте следующие строки из app / build.gradle
// compile ("com.google.android.gms:play-services-base:10.0.1") {
// force = true;
// }
// compile ("com.google.android.gms:play-services-tasks:10.0.1") {
// force = true;
// }
// compile ("com.google.android.gms:play-services-basement:10.0.1") {
// force = true;
// }
выдает ошибку
Не удалось выполнить задачу ': app: transformDexArchiveWithExternalLibsDexMergerForDebug'.
java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Невозможно объединить dex
- это классическая ошибка для меня. Раскомментирование строки
// multiDexEnabled true
в app / build.gradle не изменяется с невозможностью объединения dex.
Зависимости кажутся мне беспорядком, поэтому я попытался посмотреть на дерево зависимостей. Я хочу видеть мои зависимости gradle, чтобы попытаться все выровнять. Когда я запускаю ./gradlew: приложение / зависимости я получаю
FAILURE: сборка не удалась, исключение.
- Что пошло не так:
Не удалось определить версию Java из '10 .0.1 '.
Знает ли кто-то, в чем состоят мои проблемы, или у кого-то есть полезные ссылки, которые помогут мне понять зависимости gradle, и как они связаны с зависимостями флаттера, или как решить проблемы с 'dex', или с какими-либо советами вообще ... I был бы очень признателен, потому что я сейчас бьюсь головой о стену. Я пробовал другие решения, которые я видел в StackOverflow, и ничего не помогло. И версия для iOS пока работает нормально.