代码之家  ›  专栏  ›  技术社区  ›  Stelios Papamichail

下载图像URL时发生Firebase Storage NoSuchMethod异常

  •  0
  • Stelios Papamichail  · 技术社区  · 6 年前

    我正试图从一个名为art0.jpg的图片下载这个URL,我已经上传到云存储bucket有两个文件夹,图像位于名为Arts的文件夹中每当我运行我的应用程序时,它就会崩溃,我得到的异常/跟踪如下:

    java.lang.NoSuchMethodError: No virtual method getToken(Z)Lcom/google/android/gms/tasks/Task; in class Lcom/google/firebase/FirebaseApp; or its super classes (declaration of 'com.google.firebase.FirebaseApp' appears in /data/app/com.gammapi.dokkancardsonline-dcDgng_RjmbeJTVo_mDVqA==/base.apk)
            at com.google.firebase.storage.internal.Util.getCurrentAuthToken(com.google.firebase:firebase-storage@@16.0.5:148)
            at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(com.google.firebase:firebase-storage@@16.0.5:65)
            at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(com.google.firebase:firebase-storage@@16.0.5:57)
            at com.google.firebase.storage.GetDownloadUrlTask.run(com.google.firebase:firebase-storage@@16.0.5:71)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
            at java.lang.Thread.run(Thread.java:764)
    

    导致撞车的部分:

    storageRef.child("Arts/art0.jpg")
        .downloadUrl.addOnSuccessListener { uri ->
        //GlideApp.with(cntxt).load(uri).into(imageView)
        Log.d(TAG,"$uri")
    }.addOnFailureListener {
        Log.d(TAG,"ERROR DOWNLOADING IMAGE")
    }
    

    应用程序Gradle:

    apply plugin: 'com.android.application'
    
    apply plugin: 'kotlin-android'
    apply plugin: 'kotlin-kapt'
    apply plugin: 'kotlin-android-extensions'
    
    android {
        compileSdkVersion 29
        buildToolsVersion "29.0.2"
        defaultConfig {
            applicationId "id"
            minSdkVersion 21
            targetSdkVersion 29
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        kapt 'com.android.support:support-annotations:28.0.0'
        kapt 'com.github.bumptech.glide:compiler:4.8.0'
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
        implementation 'androidx.appcompat:appcompat:1.1.0'
        implementation 'androidx.core:core-ktx:1.1.0'
        implementation "com.google.firebase:firebase-database:19.2.0"
        implementation "com.google.android.gms:play-services-maps:17.0.0"
    
        implementation 'com.github.bumptech.glide:annotations:4.8.0'
        kapt 'com.github.bumptech.glide:compiler:4.8.0'
        implementation "com.github.bumptech.glide:okhttp3-integration:4.6.1"
        implementation 'com.github.bumptech.glide:annotations:4.8.0'
    
        implementation "com.google.firebase:firebase-core:17.2.1"
        implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
        implementation 'com.github.bumptech.glide:glide:4.8.0'
        implementation 'com.firebaseui:firebase-ui-storage:4.3.1'
        implementation 'com.google.firebase:firebase-firestore:21.2.1'
        implementation 'com.google.firebase:firebase-analytics:17.2.1'
        implementation 'com.android.support:support-annotations:28.0.0'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'androidx.test.ext:junit:1.1.1'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    }
    
    apply plugin: 'com.google.gms.google-services'
    

    现在我看了很多文章(我知道有很多),但是尽管实现了他们提到的每一个依赖项,我仍然无法让它工作。编译器找不到哪个方法如果是 getToken(Z) 第一,既然这是一个内部问题,我能做些什么来克服这个问题?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Doug Stevenson    6 年前

    您使用的是非常旧的com.firebase ui:firebaseu存储版本。最近的一次 according to GitHub 是6.0.2。