以下类的超类型无法解析

Posted

技术标签:

【中文标题】以下类的超类型无法解析【英文标题】:Supertypes of the following classes cannot be resolved 【发布时间】:2018-05-20 10:49:30 【问题描述】:

我在kotlin 中有android app,这给了我这个错误。

错误:无法解析以下类的超类型。请确保您在类路径中具有所需的依赖项: com.google.firebase.auth.FirebaseAuth 类,未解析的超类型:com.google.android.gms.internal.aad

还有这个

错误:任务 ':app:compileDebugKotlin' 执行失败。

编译错误。查看日志了解更多详情

这是我的应用模块

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android 
    compileSdkVersion 26
    defaultConfig 
        applicationId "appname"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    
    buildTypes 
        release 
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        
    


dependencies 
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

     implementation 'com.android.support:appcompat-v7:26.1.0'
     implementation 'com.android.support:animated-vector-drawable:26.1.0'
    implementation 'com.android.support:mediarouter-v7:26.1.0'
   implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support:recyclerview-v7:26.1.0'
    implementation 'com.android.support:cardview-v7:26.1.0'
    implementation 'com.android.support:design:26.1.0'

    implementation 'com.firebaseui:firebase-ui-database:3.0.0'



    //noinspection GradleCompatible,GradleCompatible
    implementation 'com.google.android.gms:play-services:11.0.4'
    implementation 'com.google.firebase:firebase-auth:11.0.4'
    implementation 'com.google.firebase:firebase-database:11.0.4'
    implementation 'com.google.firebase:firebase-storage:11.0.4'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"



 repositories 
    mavenCentral()

apply plugin: 'com.google.gms.google-services'

我的项目gradle就是这个

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript 
    ext.kotlin_version = '1.1.51'
    repositories 
        google()
        jcenter()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.google.gms:google-services:3.1.0'

    


allprojects 
    repositories 
        google()
        jcenter()
        maven  url "https://jitpack.io" 
    


task clean(type: Delete) 
    delete rootProject.buildDir

我有firebase.auth implementation,但它仍然向我显示错误。

【问题讨论】:

您是否尝试过更改依赖项的顺序? 【参考方案1】:

如果您使用的是 firebase-bom,那么您应该更新到最新版本。对我来说,升级到最新版本后它开始工作了。

截至目前的最新版本:

com.google.firebase:firebase-bom:24.5.0

您可以查看最新版本HERE

【讨论】:

【参考方案2】:

在 gradle 中添加以下内容:-

实施 'com.google.firebase:firebase-auth:19.1.0' 实施 'com.google.android.gms:play-services-auth:17.0.0'

【讨论】:

【参考方案3】:

可能发生的另一件事是您使用implementation 而不是api 作为您的一个依赖项,这可能与您模块中的另一个依赖项发生冲突。

【讨论】:

【参考方案4】:

添加这个解决了我的问题

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"

【讨论】:

【参考方案5】:

com.firebaseui:firebase-ui-auth 更新到 3.3.1 为我修复了它。由于旧版本(在我的情况下为 3.1.0)与 com.google.firebase:firebase-messaging v15 不兼容

【讨论】:

感谢@Rishabh876 implementation 'com.google.firebase:firebase-auth:19.0.0' 解决了我的问题。【参考方案6】:

将“com.google.android.gms:”组中的所有依赖项以及 firebase-messaging 版本更新到 15.0.0。而不是 12.0.1 为我解决了这个问题。

【讨论】:

【参考方案7】:

我在您的 gradle 文件中看到至少 2 个问题:

    您有一个重复的“kotlin-stdlib-jre7”条目(一个实现和一个编译)。删除最后一个:

    compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    

    未使用最新版本的 firebase 和 google play 服务:更新至 firebase 11.6.2

【讨论】:

以上是关于以下类的超类型无法解析的主要内容,如果未能解决你的问题,请参考以下文章

Mono类型解析

“DefaultInlineConstraintResolver”类型的内联约束解析器无法解析以下内联约束:“apiVersion”

扩展与复选框相关的 jsf 组件时出现“无法解析类型 javax.el.ValueExpression”错误

Cucumber 无法解析为类型

尝试激活时无法解析服务类型

FragmentActivity 无法解析为类型