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
权限处理程序:^3.0.0
元:^1.1.6
google_api_可用性:^2.0.0

dev_dependencies:
颤振测试:
SDK:颤动

flutter_launcher_icons: ^0.6.1

颤振图标:
image_path: "assets/img/location.png"
安卓:真的

扑:
使用材料设计:真实
资产:
- 资产/img/location.png
- 资产/img/gps.png
- 资产/img/no_gps.png

- 资产/img/where.jpg

LocationPage.dart

导入'包:颤振/材料.dart ';
导入'包:geolocator/geolocator.dart ';

类 LocationPage 扩展了 StatefulWidget {
@覆盖
LocationPageState createState() => LocationPageState();
}

类 LocationPageState 扩展了 State{

initLocation() 异步{
Position position = await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
打印(位置);
}

初始化状态(){
super.initState();
initLocation();
}

@覆盖
小部件构建(BuildContext 上下文){
返回脚手架(...);
}

}

控制台输出:

在 flutter_app 中运行“flutter package get”... 0.6s
在调试模式下在 MI 6 上启动 lib/main.dart...
正在初始化gradle...
解决依赖...
正在运行 Gradle 任务“assembleDebug”...

FAILURE:构建失败,出现异常。

  • 什么地方出了错:
    任务“: 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
  • [*]:机器人:安卓

[✓] Flutter (Channel stable, v1.2.1, on Mac OS X 10.13.6 17G65, locale en-UA)
[✓] Android 工具链 - 为 Android 设备开发(Android SDK 版本 28.0.3)
[✓] iOS 工具链 - 为 iOS 设备开发 (Xcode 10.1)
[✓] Android Studio(3.3 版)
[✓] VS 代码(1.31.1 版)
[✓] 已连接设备(1 个可用)

• 未发现问题!

最有用的评论

对我来说,我将 android 迁移添加到 gradle 属性文件中,然后更改了类路径“com.android.tools”。 build:gradle :3.2.1' 到类路径 'com.android.tools. 构建:gradle :3.3.1'。 我正在使用地理定位器 3.0.1。 按照这个链接https://www.youtube.com/watch?v=ZRl4t2KdEHQ然后做我上面说的

所有15条评论

对我来说,我将 android 迁移添加到 gradle 属性文件中,然后更改了类路径“com.android.tools”。 build:gradle :3.2.1' 到类路径 'com.android.tools. 构建:gradle :3.3.1'。 我正在使用地理定位器 3.0.1。 按照这个链接https://www.youtube.com/watch?v=ZRl4t2KdEHQ然后做我上面说的

一世

对我来说,我将 android 迁移添加到 gradle 属性文件中,然后更改了类路径“com.android.tools”。 build:gradle :3.2.1' 到类路径 'com.android.tools. 构建:gradle :3.3.1'。 我正在使用地理定位器 3.0.1。 按照这个链接https://www.youtube.com/watch?v=ZRl4t2KdEHQ然后做我上面说的

当我添加 (android.useAndroidX=true
android.enableJetifier=true)
感谢它工作的 gradle 属性

谢谢@aidouyaw1992 ,将类路径更改为 3.3.1 也对我

一世

对我来说,我将 android 迁移添加到 gradle 属性文件中,然后更改了类路径“com.android.tools”。 build:gradle :3.2.1' 到类路径 'com.android.tools. 构建:gradle :3.3.1'。 我正在使用地理定位器 3.0.1。 按照这个链接https://www.youtube.com/watch?v=ZRl4t2KdEHQ然后做我上面说的

当我添加 (android.useAndroidX=true
android.enableJetifier=true)
感谢它工作的 gradle 属性

我有这些设置,并且发生了同样的问题。
为我解决的是来自@aidouyaw1992的提示,将类路径更改为gradle:3.3.1。

谢谢,@aidouyaw1992!

我的荣幸

2019 年 3 月 18 日星期一,17:17 Matheus Henrique de Oliveira,<
[email protected]> 写道:

一世

对我来说,我将 android 迁移添加到了 gradle 属性文件和
然后改变了类路径'com.android.tools。 build:gradle :3.2.1' 到类路径
'com.android.tools. 构建:gradle :3.3.1'。 我正在使用地理定位器 3.0.1。 跟随
此链接https://www.youtube.com/watch?v=ZRl4t2KdEHQ然后执行我的操作
上面说过

当我添加 (android.useAndroidX=true
android.enableJetifier=true)
感谢它工作的 gradle 属性

我有这些设置,并且发生了同样的问题。
为我解决的是来自@aidouyaw1992 的提示
https://github.com/aidouyaw1992 ,将类路径更改为gradle:3.3.1。

谢谢, @aidouyaw1992 https://github.com/aidouyaw1992


你收到这个是因为你被提到了。
直接回复本邮件,在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
这两个布尔值也位于Android文件夹的根目录,文件gradle.properties ,只需添加两行

现在它起作用了。

随机改变属性不危险吗? 它还会与旧的 Android 版本兼容吗?

@Robouste ,问题是我们已经升级了 Geolocator 插件以支持 AndroidX(并且仍然与旧的 Android 版本兼容)。 这意味着您还必须升级您的应用程序,这可以按照以下说明完成:

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

尝试在应用程序级别添加脚本

子项目{
project.evaluationDependsOn(':app')
项目.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属性中添加两行
android.enableJetifier=真
android.useAndroidX=真

(2)在root gradle中添加以下内容

子项目{
project.evaluationDependsOn(':app')
项目.configurations.all {
resolutionStrategy.eachDependency { 详细信息 ->
if (details.requested.group == 'com.android.support'
&& !details.requested.name.contains('multidex') ) {
details.useVersion "29.0.0"
}
}
}
}

对我来说,我将Android迁移添加到gradle属性文件中,然后将类路径'com.android.tools.build:gradle:3.2.1'更改为类路径'com.android.tools.build:gradle:3.3.1'。即时通讯使用geolocator 3.0.1。按照此链接https://www.youtube.com/watch?v=ZRl4t2KdEHQ,然后按照我上面所说的做
解决了我的问题,谢谢大佬

感谢对我有用的 aidooyaw1992。
我遇到的另一个问题是 intl 0.16 与 flutter_localizations 不兼容,但您可以声明

依赖项:
...
flutter_localizations:
SDK:颤动
国际:0.15.8
...

然后覆盖
依赖覆盖:
国际:^0.16.0

它适用于对 intl ^0.16.0 的依赖

此页面是否有帮助?
0 / 5 - 0 等级