"Supertypes of the following classes cannot be resolved.” in Task:app:buildInfoGeneratorDebug

会有一股神秘感。 提交于 2019-12-13 17:22:13

问题


I can't compile my Android Kotlin Project because I get the following 'Kotlin compiler' error when gradle compiles:

Supertypes of the following classes cannot be resolved. Please make sure 
you have the required dependencies in the classpath: class 
sensor_msgs.CompressedImage, unresolved supertypes: 
org.ros.internal.message.Message> Task:app:buildInfoGeneratorDebug

This is a simple test project that has the bare minimum code. The main difference between a regular android app. and this one is my MainActivity uses class RosActivity rather than AppCompatActivity.

I have changed 'ext.kotlin_version' (Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:)

I have tried changing the order of dependencies (error: supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath)

I have tried 'resolutionStrategy.force' (error: supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath)

I have tried 'Invalidate cache/restart' (error: supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath)

I changed 'org.jetbrains.kotlin:kotlin' but this did not work (Supertypes of the following classes cannot be resolved)

Manifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools" package="com.company.roscameratest">

    <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme" tools:replace="android:icon">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:name="org.ros.android.MasterChooser" />

        <service android:name="org.ros.android.NodeMainExecutorService" >
            <intent-filter>
                <action android:name="org.ros.android.NodeMainExecutorService" />
            </intent-filter>
        </service>
    </application>

</manifest>

build.gradle (Project):

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

buildscript {
    ext.kotlin_version = '1.3.41'
    repositories {
        google()
        jcenter()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
        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
    }
}

allprojects {
    repositories {
        google()
        jcenter()

    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

build.gradle (Module):

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.company.roscameratest"
        minSdkVersion 26
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    configurations.all {
        resolutionStrategy.force "org.ros.android_core:android_15:0.3.3"
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'org.ros.android_core:android_15:0.3.3'
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    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'
}

repositories {
    maven {  url 'https://github.com/rosjava/rosjava_mvn_repo/raw/master' }
}

回答1:


In gradle, if your Project implementation A, but A also implementation B。 if your project used some class in A whitch extents class in B, you can just call construction method, can‘t call method whitch call superClass in B, or use it to method paramater。

just try implemntation to api。

api 'org.ros.android_core:android_15:0.3.3'



来源:https://stackoverflow.com/questions/57154428/supertypes-of-the-following-classes-cannot-be-resolved-in-taskappbuildinfog

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!