Task:app:buildInfoGeneratorDebug中的“无法解析以下类的超类型。”

时间:2019-07-22 22:18:11

标签: java android kotlin android-gradle ros

我无法编译我的Android Kotlin项目,因为在gradle编译时出现以下“ Kotlin编译器”错误:

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

这是一个简单的测试项目,具有最少的代码。常规android应用之间的主要区别。这是我的MainActivity使用RosActivity类而不是AppCompatActivity。

我更改了'ext.kotlin_version'(Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:

我尝试更改依赖项的顺序(error: supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath

我尝试了'resolutionStrategy.force'(error: supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath

我尝试过“使缓存/重新启动无效”(error: supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath

我更改了“ org.jetbrains.kotlin:kotlin”,但这不起作用(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(项目):

// 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(模块):

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 个答案:

答案 0 :(得分:1)

在gradle中,如果您的Project实现A,但是A也实现B。如果您的项目使用了B中的Witch扩展类中的某个类,则只能调用构造方法,而不能调用方法中的B中的superClass,或将其用于方法参数。

只需尝试对api进行限制。

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