Flutter应用在Android 10& amp;上崩溃没有静态方法的R isAtLeastR [英] Flutter app crashing on android 10 & R with No static method isAtLeastR

查看:517
本文介绍了Flutter应用在Android 10& amp;上崩溃没有静态方法的R isAtLeastR的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经看到了一些与Stack溢出类似的问题,但是没有一个与同一个库有很大关系的问题.

I've seen a few issues similar on Stack overflow, but not one that quite relates to the same libraries.

我正试图在flutter中使用2个插件 flutter_geofence和geolocator

I'm trying to use 2 plugins in flutter flutter_geofence and geolocator

他们俩都运行良好,但是从昨天开始,一旦位置调用服务被调用,我就退出了该应用程序,其堆栈跟踪类似于以下内容:

They've both been working fine, but since yesterday as soon as of the location play services are called I'm getting the app quit with a stack trace similar to below:

E/flutter (11478): [ERROR:flutter/shell/platform/android/platform_view_android_jni.cc(39)] java.lang.NoSuchMethodError: No static method isAtLeastR()Z in class Landroidx/core/os/BuildCompat; or its super classes (declaration of 'androidx.core.os.BuildCompat' appears in /data/app/com.mypossibleself.app-FTu9V5QDAKR_ngQmuPzg7Q==/base.apk!classes2.dex)
E/flutter (11478):  at com.google.android.gms.common.util.PlatformVersion.isAtLeastR(com.google.android.gms:play-services-basement@@17.2.1:21)
E/flutter (11478):  at com.google.android.gms.common.api.GoogleApi.zaa(com.google.android.gms:play-services-base@@17.2.1:128)
E/flutter (11478):  at com.google.android.gms.common.api.GoogleApi.<init>(com.google.android.gms:play-services-base@@17.2.1:41)
E/flutter (11478):  at com.google.android.gms.common.api.GoogleApi.<init>(com.google.android.gms:play-services-base@@17.2.1:56)
E/flutter (11478):  at com.google.android.gms.location.FusedLocationProviderClient.<init>(Unknown Source:8)
E/flutter (11478):  at com.google.android.gms.location.LocationServices.getFusedLocationProviderClient(Unknown Source:2)
E/flutter (11478):  at com.baseflow.geolocator.tasks.LocationUpdatesUsingLocationServicesTask.<init>(LocationUpdatesUsingLocationServicesTask.java:29)
E/flutter (11478):  at com.baseflow.geolocator.tasks.TaskFactory.createStreamLocationUpdatesTask(TaskFactory.java:120)
E/flutter (11478):  at com.baseflow.geolocator.GeolocatorPlugin.onListen(GeolocatorPlugin.java:110)
E/flutter (11478):  at io.flutter.plugin.common.EventChannel$IncomingStreamRequestHandler.onListen(EventChannel.java:193)
E/flutter (11478):  at io.flutter.plugin.common.EventChannel$IncomingStreamRequestHandler.onMessage(EventChannel.java:172)
E/flutter (11478):  at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:93)
E/flutter (11478):  at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:642)
E/flutter (11478):  at android.os.MessageQueue.nativePollOnce(Native Method)
E/flutter (11478):  at android.os.MessageQueue.next(MessageQueue.java:336)
E/flutter (11478):  at android.os.Looper.loop(Looper.java:174)
E/flutter (11478):  at android.app.ActivityThread.main(ActivityThread.java:7356)
E/flutter (11478):  at java.lang.reflect.Method.invoke(Native Method)
E/flutter (11478):  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
E/flutter (11478):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

因此,它抱怨缺少isAtLeastR方法

So it's complaining about a missing method isAtLeastR

我见过的其他参考文献都提到了com.google.android.gms:play-services-base的特定版本,这是导致此问题的原因,但它已在com.google.android.gms:play-services-base中修复: 17.2.1

Other references I've seen to this mention specific versions of com.google.android.gms:play-services-base causing this, but that it's fixed in com.google.android.gms:play-services-base:17.2.1

这两个库都不在其build.gradle文件中实现该程序包,因此对于解决此问题需要做什么我一无所知.

Neither of these library implement that package in their build.gradle files so I'm at a loss as to what needs doing to fix this issue.

推荐答案

在app/build.gradle中添加com.google.android.gms:play-services-base:17.2.1,这应使库使用特定版本的播放服务.

In the app/build.gradle add com.google.android.gms:play-services-base:17.2.1 this should make libraries use specific version of play-services.

如果没有帮助,则可能需要

If it doesn't help, might need to

configurations.all {
    resolutionStrategy {
        force 'com.google.needed_dependency'
    }
}

https://flutter.dev/docs /development/packages-and-plugins/using-packages#conflict-resolution

根据安德鲁斯的建议进行

Edit as per Andrews suggestion:

17.2.1不起作用,但17.0.0起作用.

17.2.1 doesn't work, but 17.0.0 does.

implementation("com.google.android.gms:play-services-base:17.0.0"){ force = true } 

这篇关于Flutter应用在Android 10&amp; amp;上崩溃没有静态方法的R isAtLeastR的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆