error: supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath

后端 未结 15 1149
误落风尘
误落风尘 2020-12-05 22:31

I can\'t compile my Android Kotlin project.

I have no idea what is this...

Gradle log:

error: supertypes of the following classes ca

相关标签:
15条回答
  • 2020-12-05 23:07

    Before trying anything else, try: Android Studio -> File -> Invalidate cache/restart

    This worked for me.

    0 讨论(0)
  • 2020-12-05 23:09

    On my case I had to add the required dependency on my main module and compile the last version with:

    android {
        configurations.all {
            resolutionStrategy.force "com.squareup.picasso:picasso:${picassoVersion}"
        }
    }
    
    0 讨论(0)
  • 2020-12-05 23:09

    In my case, I had removed an unused OnFragmentInteractionListener in a fragment:

    public interface OnFragmentInteractionListener {
        // TODO: Update argument type and name
        void onFragmentInteraction(Uri uri);
    }
    

    However, In my activity I had failed to remove a reference to this OnFragmentInteractionListener :

    public class MainActivity extends AppCompatActivity implements
            MyFragment.OnFragmentInteractionListener {
    

    Strangely, instead of giving an error that indicated the OnFragmentInteractionListener was not found, I received the above "supertypes of the following classes cannot be resolved" with no reference to the classes.

    0 讨论(0)
  • 2020-12-05 23:17

    I fixed it by changing the order of plugins call!

    build.gradle

    buildscript {
        ext.android_plugin_version = '2.3.3'
        ext.kotlin_version = '1.1.3-2'
    
        repositories {
            jcenter()
            mavenCentral()
    
            maven { url "https://maven.google.com" }
            maven { url 'https://maven.fabric.io/public' }
            maven { url "https://jitpack.io" }
        }
    
        dependencies {
            classpath "com.android.tools.build:gradle:$android_plugin_version"
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
            classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
            classpath 'io.fabric.tools:gradle:1.+'
        }
    }
    
    allprojects {
        repositories {
            jcenter()
            mavenCentral()
    
            maven { url "https://maven.google.com" }
            maven { url 'https://maven.fabric.io/public' }
            maven { url "https://jitpack.io" }
        }
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    

    app/build.gradle

    apply plugin: 'com.android.application'
    apply plugin: 'kotlin-kapt'
    apply plugin: 'kotlin-android'
    apply plugin: 'kotlin-android-extensions'
    apply plugin: 'io.fabric'
    
    android {
        compileSdkVersion 26
        buildToolsVersion "26.0.0"
    
        defaultConfig {
            applicationId "com.sample.app"
            minSdkVersion 19
            targetSdkVersion 26
            versionCode 1
            versionName "1.0.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
            multiDexEnabled true
        }
    
        buildTypes {
            debug {
                ext.alwaysUpdateBuildId = false
            }
    
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    
        dexOptions {
            javaMaxHeapSize "4g"
        }
    
        dataBinding {
            enabled true
        }
    
        sourceSets {
            main.java.srcDirs += 'src/main/kotlin'
        }
    
        lintOptions {
            abortOnError false
            disable 'InvalidPackage'
        }
    }
    
    kapt {
        generateStubs = true
    }
    
    dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
        testCompile 'junit:junit:4.12'
    
        // kotlin
        kapt "com.android.databinding:compiler:$android_plugin_version"
        compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    
        // android
        compile 'com.android.support:multidex:1.0.1'
        compile "com.android.support:appcompat-v7:${compat_version}"
        compile "com.android.support:design:${compat_version}"
        compile "com.android.support:cardview-v7:${compat_version}"
        compile "com.android.support:recyclerview-v7:${compat_version}"
        compile "com.android.support:gridlayout-v7:${compat_version}"
        compile "com.android.support:support-vector-drawable:${compat_version}"
        compile 'com.android.support.constraint:constraint-layout:1.0.2'
        compile "com.google.android.gms:play-services-ads:${play_services_version}"
        compile "com.google.android.gms:play-services-maps:${play_services_version}"
        compile "com.google.android.gms:play-services-gcm:${play_services_version}"
        compile 'com.google.maps.android:android-maps-utils:0.4+'
    
        // fabric
        compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
            transitive = true;
        }
    
        // logger
        compile 'com.orhanobut:logger:2.1.1'
    
        // dexter
        compile 'com.karumi:dexter:4.1.0'
    
        // firebase
        compile "com.google.firebase:firebase-messaging:${firebase_version}"
    
        // persistence
        compile "android.arch.persistence.room:runtime:1.0.0-alpha3"
        annotationProcessor "android.arch.persistence.room:compiler:1.0.0-alpha3"
    
        // facebook
        compile 'com.facebook.android:facebook-android-sdk:4.+'
    
        // retrofit
        compile 'com.squareup.retrofit2:retrofit:2.3.0'
        compile 'com.squareup.retrofit2:converter-gson:2.3.0'
    
        // gson
        compile 'com.google.code.gson:gson:2.8.1'
    
        // jobs
        compile 'com.evernote:android-job:1.1.11'
    
        // chart
        compile 'com.github.PhilJay:MPAndroidChart:v3.0.1'
    
        // fresco
        compile 'com.facebook.fresco:fresco:1.3.0'
    
        // indicator
        compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
    }
    
    0 讨论(0)
  • 2020-12-05 23:17

    Update your google play gradle version to the latest

    0 讨论(0)
  • 2020-12-05 23:18

    In my case I had a library module with an abstract application class implementing Dagger's HasActivityInjector and an application module with a dependency to the library and its own (non-abstract) application class extending the base app class.

    My Gradle dependencies were implementations, and therefore not accessible to the application module's application class (even though there were no imports there, otherwise the issue would be immediately obvious as you'd get a 'could not resolve' error. The fix was to replace dagger implementation dependencies with api, that makes them available to dependant modules as well.

    0 讨论(0)
提交回复
热议问题