Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Flutter Error: java.lang.NoSuchFieldError PREFER_HIGHEST_OR_REMOTE_VERSION_NO_FORCE_STAGING

I have tried to solve this problem but it keeps giving me the same error.

I use the following firebase services:

  • Firebase Auth
  • Firebase Database
  • Firebase Storage
  • Firebase Messaging

I hope to solve this problem, I appreciate any help, thanks.

Screenshot:

enter image description here

Here I show you the console run

Launching lib\main.dart on Android SDK built for x86 in debug mode...
[{"event":"app.progress","params":{"appId":"870bf9fe-6ecb-481e-9990-a8f0123d691f","id":"0","progressId":null,"message":"Initializing gradle..."}}]Initializing gradle...

Resolving dependencies...
Running 'gradlew assembleDebug'...
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
Built build\app\outputs\apk\debug\app-debug.apk.
Installing build\app\outputs\apk\app.apk...
I/flutter (14362): Load es
Syncing files to device Android SDK built for x86...
D/        (14362): HostConnection::get() New Host Connection established 0x9ffa3dc0, tid 14398
D/EGL_emulation(14362): eglMakeCurrent: 0x9fd86c00: ver 3 0 (tinfo 0x9fff1110)
W/zygote  (14362): Unsupported class loader
W/zygote  (14362): Skipping duplicate class check due to unsupported classloader
I/DynamiteModule(14362): Considering local module com.google.android.gms.firebase_database:4 and remote module com.google.android.gms.firebase_database:6
I/DynamiteModule(14362): Selected remote version of com.google.android.gms.firebase_database, version >= 6
V/DynamiteModule(14362): Dynamite loader version >= 2, using loadModule2NoCrashUtils
W/zygote  (14362): Unsupported class loader
W/zygote  (14362): Skipping duplicate class check due to unsupported classloader
E/AndroidRuntime(14362): FATAL EXCEPTION: TokenRefresher
E/AndroidRuntime(14362): Process: com.***********, PID: 14362
E/AndroidRuntime(14362): java.lang.NoSuchFieldError: No static field PREFER_HIGHEST_OR_REMOTE_VERSION_NO_FORCE_STAGING of type Lcom/google/android/gms/dynamite/DynamiteModule$VersionPolicy; in class Lcom/google/android/gms/dynamite/DynamiteModule; or its superclasses (declaration of 'com.google.android.gms.dynamite.DynamiteModule' appears in /data/app/com.*********-Bx6_KiELmKKW1pc-YChs7w==/base.apk)
E/AndroidRuntime(14362):    at com.google.android.gms.flags.FlagValueProvider.initialize(Unknown Source:7)
E/AndroidRuntime(14362):    at com.google.android.gms.flags.FlagRegistry.initialize(Unknown Source:4)
E/AndroidRuntime(14362):    at com.google.firebase.auth.internal.zzx.initialize(Unknown Source:3)
E/AndroidRuntime(14362):    at com.google.firebase.auth.internal.zzt.run(Unknown Source:14)
E/AndroidRuntime(14362):    at android.os.Handler.handleCallback(Handler.java:790)
E/AndroidRuntime(14362):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(14362):    at android.os.Looper.loop(Looper.java:164)
E/AndroidRuntime(14362):    at android.os.HandlerThread.run(HandlerThread.java:65)
W/DynamiteModule(14362): Local module descriptor class for com.google.firebase.auth not found.
W/BiChannelGoogleApi(14362): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzal@d55aa74
W/DynamiteModule(14362): Local module descriptor class for com.google.firebase.auth not found.
I/FirebaseAuth(14362): [FirebaseAuth:] Loading module via FirebaseOptions.
I/FirebaseAuth(14362): [FirebaseAuth:] Preparing to create service connection to gms implementation
D/EGL_emulation(14362): eglMakeCurrent: 0x9fd86c60: ver 3 0 (tinfo 0x89b36690)
D/FirebaseAuth(14362): Notifying id token listeners about user ( oi1ngjUXDpWPIBaen7po8T5vE8R2 ).
D/FirebaseApp(14362): Notifying auth state listeners.
D/FirebaseApp(14362): Notified 1 auth state listeners.
D/NetworkSecurityConfig(14362): No Network Security Config specified, using platform default
I/zygote  (14362): Do partial code cache collection, code=61KB, data=44KB
I/zygote  (14362): After code cache collection, code=61KB, data=44KB
I/zygote  (14362): Increasing code cache capacity to 256KB
D/FlutterNativeView(14362): FlutterView.send called on a detached view, channel=plugins.flutter.io/firebase_database
I/FirebaseAuth(14362): [FirebaseAuth:] Loading module via FirebaseOptions.
I/FirebaseAuth(14362): [FirebaseAuth:] Preparing to create service connection to gms implementation
Lost connection to device.

My Android project and the build.gradle.

Android -> build.grandle

buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies {
          classpath 'com.android.tools.build:gradle:3.2.0'
          classpath 'com.google.gms:google-services:4.1.0'
        //classpath 'com.android.tools.build:gradle:3.1.2'
        //classpath 'com.google.gms:google-services:3.2.1' 
    }
}

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
}

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "26.1.0"
            }
        }
    }
}

Android -> App -> src -> build.grandle

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.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {
    compileSdkVersion 27

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        applicationId "com.*************"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.firebase:firebase-core:16.0.4'
}
apply plugin: 'com.google.gms.google-services'



I updated the versions on Android -> build.gradle. But now it comes out with another error.

UPDATED:

Launching lib\main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
* Error running Gradle:
Exit code 1 from: C:\Users\*******\AndroidStudioProjects\**********\*********\android\gradlew.bat app:properties:
Starting a Gradle Daemon (subsequent builds will be faster)


FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'android'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not resolve com.android.tools.build:gradle:3.2.0.
     Required by:
         project :
      > Could not resolve com.android.tools.build:gradle:3.2.0.
         > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.2.0/gradle-3.2.0.pom'.
            > Could not HEAD 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.2.0/gradle-3.2.0.pom'.
               > dl.google.com
   > Could not resolve com.google.gms:google-services:4.1.0.
     Required by:
         project :
      > Could not resolve com.google.gms:google-services:4.1.0.
         > Could not get resource 'https://dl.google.com/dl/android/maven2/com/google/gms/google-services/4.1.0/google-services-4.1.0.pom'.
            > Could not HEAD 'https://dl.google.com/dl/android/maven2/com/google/gms/google-services/4.1.0/google-services-4.1.0.pom'.
               > dl.google.com
      > Could not resolve com.google.gms:google-services:4.1.0.
         > Could not get resource 'https://jcenter.bintray.com/com/google/gms/google-services/4.1.0/google-services-4.1.0.pom'.
            > Could not HEAD 'https://jcenter.bintray.com/com/google/gms/google-services/4.1.0/google-services-4.1.0.pom'.
               > Connect to jcenter.bintray.com:443 [jcenter.bintray.com/159.122.18.156] failed: Connection timed out: connect

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

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

BUILD FAILED in 54s

Finished with error: Please review your Gradle project setup in the android/ folder.
like image 957
DomingoMG Avatar asked Dec 07 '22 13:12

DomingoMG


1 Answers

I believe that this is due to the fact that half of Google's FlutterFire plugins are using old versions of their Android counterparts. As such, I've specified which versions to use in my app level build.gradle. This probably isn't a permanent solution, but seems to have stopped the crashes in the mean time.

In the app level build.gradle, add the following to dependencies:

implementation 'com.google.firebase:firebase-core:16.0.4'
implementation 'com.google.firebase:firebase-analytics:16.0.4'
implementation 'com.google.firebase:firebase-auth:16.0.4'
implementation 'com.google.firebase:firebase-firestore:17.1.1'
implementation 'com.google.firebase:firebase-functions:16.1.1'
implementation 'com.google.firebase:firebase-messaging:17.3.3'
implementation 'com.google.firebase:firebase-storage:16.0.3'

Let me know if this works.

Edit: Only add the implementation lines for the Firebase plugins that you are using. You can find the latest version of each here.

like image 150
oreid Avatar answered Dec 11 '22 11:12

oreid