Flutter-geolocator: Androidの依存関係 'androidx.core:core'には、コンパイル(1.0.0)クラスパスとランタイム(1.0.1)クラスパスのバージョンが異なります。

作成日 2019年03月12日  ·  15コメント  ·  ソース: Baseflow/flutter-geolocator

🐛バグレポート


みなさん、こんにちは。

このプラグインをインストールできません。このプラグインのさまざまなバージョン(3.0.1、3.0.0、2.1.1、2.1.0)を試しましたが、機能しませんでした。 誰かがすでにこの問題に遭遇しましたか?

pubsec.yaml

名前:flutter_app
説明:新しいFlutterアプリケーション。

バージョン:1.1.0 + 1

環境:
sdk: "> = 2.1.0 <3.0.0"

依存関係:
フラッター:
SDK:フラッター

cupertino_icons:^ 0.1.2
ジオロケーター:^ 3.0.1
permit_handler:^ 3.0.0
メタ:^ 1.1.6
google_api_availability:^ 2.0.0

dev_dependencies:
flutter_test:
SDK:フラッター

flutter_launcher_icons:^ 0.6.1

flutter_icons:
image_path: "assets / img / location.png"
アンドロイド:本当

フラッター:
使用-マテリアルデザイン:true
資産:
--assets / img / location.png
--assets / img / gps.png
--assets / img / no_gps.png

--assets / img / where.jpg

LocationPage.dart

import'package:flutter / Material.dart ';
import'package:geolocator / geolocator.dart ';

クラスLocationPageはStatefulWidgetを拡張します{
@オーバーライド
LocationPageState createState()=> LocationPageState();
}

クラスLocationPageStateはStateを拡張します{{

initLocation()async {
位置position = await Geolocator()。getCurrentPosition(desiredAccuracy:LocationAccuracy.high);
print(position);
}

initState(){
super.initState();
initLocation();
}

@オーバーライド
ウィジェットビルド(BuildContextコンテキスト){
Scaffold(...);を返します。
}

}

コンソール出力:

flutter_appで「flutterpackagesget」を実行しています... 0.6秒
デバッグモードのMI6でlib / main.dartを起動しています...
Gradleを初期化しています...
依存関係を解決しています...
Gradleタスク 'assembleDebug'を実行しています...

失敗:ビルドは例外で失敗しました。

  • 何が悪かったのか:
    タスク ': app:preDebugBuild 'の実行に失敗しました。

    Androidの依存関係 'androidx。 core:core 'には、コンパイル(1.0.0)クラスパスとランタイム(1.0.1)クラスパスのバージョンが異なります。 DependencyResolutionを使用して同じバージョンを手動で設定する必要があります

  • 試す:
    --stacktraceオプションを指定して実行し、スタックトレースを取得します。 --infoまたは--debugオプションを指定して実行すると、より多くのログ出力が得られます。 --scanを指定して実行すると、完全な洞察が得られます。

  • https://help.gradle.orgでさらにヘルプを入手して

4秒でビルドに失敗しました


Gradleの失敗は、このFlutterアプリのAndroidXの非互換性が原因である可能性があります。
問題とその修正方法の詳細については、 https://goo.gl/CP92wYを参照して


エラーで終了:GradleタスクassembleDebugが終了コード1で失敗しました

複製手順

フラッターラン-d

構成

バージョン: 3.0.1

プラットホーム:

  • []:iphone:iOS
  • [*]:robot:Android

[✓]フラッター(チャンネル安定版、v1.2.1、Mac OS X 10.13.6 17G65、ロケールen-UA)
[✓] Androidツールチェーン-Androidデバイス用に開発(Android SDKバージョン28.0.3)
[✓] iOSツールチェーン-iOSデバイス用に開発(Xcode 10.1)
[✓] Android Studio(バージョン3.3)
[✓] VS Code(バージョン1.31.1)
[✓]接続されたデバイス(1つ利用可能)

•問題は見つかりませんでした。

最も参考になるコメント

私の場合、Androidの移行をgradleプロパティファイルに追加してから、クラスパス 'com.android.toolsを変更しました。 build: gradle:3.2.1 'からクラスパス' com.android.toolsへ。 build:gradle :3.3.1 '。 geolocator3.0.1を使用しているim。 このリンクhttps://www.youtube.com/watch?v=ZRl4t2KdEHQをたどってから、上記の内容を実行して

全てのコメント15件

私の場合、Androidの移行をgradleプロパティファイルに追加してから、クラスパス 'com.android.toolsを変更しました。 build: gradle:3.2.1 'からクラスパス' com.android.toolsへ。 build:gradle :3.3.1 '。 geolocator3.0.1を使用しているim。 このリンクhttps://www.youtube.com/watch?v=ZRl4t2KdEHQをたどってから、上記の内容を実行して

私の場合、Androidの移行をgradleプロパティファイルに追加してから、クラスパス 'com.android.toolsを変更しました。 build: gradle:3.2.1 'からクラスパス' com.android.toolsへ。 build:gradle :3.3.1 '。 geolocator3.0.1を使用しているim。 このリンクhttps://www.youtube.com/watch?v=ZRl4t2KdEHQをたどってから、上記の内容を実行して

(android.useAndroidX = true
android.enableJetifier = true)
Gradleのプロパティに感謝します

@ aidooyaw1992に感謝します。クラスパスを3.3.1に変更しても、私にとっては

私の場合、Androidの移行をgradleプロパティファイルに追加してから、クラスパス 'com.android.toolsを変更しました。 build: gradle:3.2.1 'からクラスパス' com.android.toolsへ。 build:gradle :3.3.1 '。 geolocator3.0.1を使用しているim。 このリンクhttps://www.youtube.com/watch?v=ZRl4t2KdEHQをたどってから、上記の内容を実行して

(android.useAndroidX = true
android.enableJetifier = true)
Gradleのプロパティに感謝します

私はこれらのセットを持っていて、同じ問題が起こっていました。
私にとって解決したのは、 @ aidooyaw1992からのgradle :3.3.1に変更しました

ありがとう、@ aidooyaw1992!

どういたしまして

2019年3月18日月曜日、17:17マテウス・エンリケ・デ・オリベイラ、<
[email protected]>は次のように書いています:

私の場合、Androidの移行をgradleプロパティファイルに追加し、
次に、クラスパス 'com.android.toolsを変更しました。 build:gradle :3.2.1 'からクラスパスへ
'com.android.tools。 build:gradle :3.3.1 '。 geolocator3.0.1を使用しているim。 従う
このリンクhttps://www.youtube.com/watch?v=ZRl4t2KdEHQそして私が何をするか
上で言った

(android.useAndroidX = true
android.enableJetifier = true)
Gradleのプロパティに感謝します

私はこれらのセットを持っていて、同じ問題が起こっていました。
私にとって解決したのは@ aidooyaw1992からのヒントでした
https://github.com/aidooyaw1992 、クラスパスをgradle:3.3.1に変更します

ありがとう、 @ aidooyaw1992 https://github.com/aidooyaw1992


あなたが言及されたので、あなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/BaseflowIT/flutter-geolocator/issues/228#issuecomment-474014943
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/AIG4X9VG3JH5L3NctGCqQ0NzTDuWl3XGks5vX8obgaJpZM4brXKj

参照: https

似ています。

私は仲間がいます...同じ問題に直面すると、クラスパスを3.2.1からgradle:3.3.0 (3.3.1ではなく)に変更することで解決しました。 また、(android.useAndroidX = true
android.enableJetifier = true)からgradle.properties...。

どちらがそれを起こしたのかわからない...

たくさんのタク、ファターチーム...

皆さん、変更を加えたファイルを教えていただければ幸いです。 com.android.tools.build:gradle:検索し、一致するものが1つ見つかりましたが、別のエラーが発生します。

Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:

編集:
classPathの変更はAndroidフォルダーのルートにあり、ファイルbuild.gradle
2つのブール値はAndroidフォルダーのルートにもあり、ファイルgradle.properties 、2行を追加するだけです

今では動作します。

プロパティをランダムに変更するのは危険ではありませんか? それでも古いAndroidバージョンと互換性がありますか?

@Robouste 、問題は、AndroidXをサポートするようにGeolocatorプラグインをアップグレードしたことです(また、古いAndroidバージョンとの互換性もあります)。 これは、次の手順に従って実行できるアプリもアップグレードする必要があることを意味します。

https://github.com/BaseflowIT/flutter-geolocator/issues/196#issuecomment -465460801

アプリレベルでスクリプトを追加してみてください

サブプロジェクト{
project.evaluationDependsOn( ':app')
project.configurations.all {
resolutionStrategy.eachDependency {詳細->
if(details.requested.group == 'com.android.support'
&&!details.requested.name.contains( 'multidex')){
details.useVersion "28.0.0"
}
}
}
}

if(details.requested.group == 'androidx.core'
&&!details.requested.name.contains( 'androidx')){
details.useVersion "1.0.1"
}

ビルドプロジェクトにandroid.enableJetifier = trueとandroid.useAndroidX = trueを追加し、クラスパスを3.3.1に変更することで、正常に機能します。

以下は私の問題を解決しました
(1)gradleプロパティに2行を追加する
android.enableJetifier = true
android.useAndroidX = true

(2)ルートgradleに以下を追加します

サブプロジェクト{
project.evaluationDependsOn( ':app')
project.configurations.all {
resolutionStrategy.eachDependency {詳細->
if(details.requested.group == 'com.android.support'
&&!details.requested.name.contains( 'multidex')){
details.useVersion "29.0.0"
}
}
}
}

私にとっては、私はGradleのプロパティファイルにAndroidの移行を加え、次いでclasspath'com.android.tools.build変更:Gradleのclasspath'com.android.tools.buildに3.2.1'を: :Gradleの:3.3。 1 '。インスタントメッセージングにgeolocator3.0.1を使用しています。このリンクhttps://www.youtube.com/watch?v=ZRl4t2KdEHQをたどってから、上記のことを実行して問題を解決してください。ありがとうございます。

私のために働いたaidooyaw1992に感謝します。
私が抱えていたもう1つの問題は、intl 0.16がflutter_localizationsと互換性がないことでしたが、宣言することはできます

依存関係:
..。
flutter_localizations:
SDK:フラッター
intl:0.15.8
..。

その後、オーバーライドします
依存関係オーバーライド:
intl:^ 0.16.0

そしてそれはintl ^ 0.16.0への依存関係のために働きます

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

Sammius picture Sammius  ·  4コメント

lqmminh picture lqmminh  ·  6コメント

deisold picture deisold  ·  3コメント

prasant10050 picture prasant10050  ·  6コメント

BigWillieStyle picture BigWillieStyle  ·  6コメント