Android Gradle实施项目(':项目名称')无法正常工作

时间:2019-11-11 23:22:58

标签: android gradle

我在Android Studio 3.5中有一个项目,并且我正在尝试使用实现项目(':data')在Gradle中添加一个模块,并且它无法正常工作。

我在“数据”模块下导入了Retrofit和Okhttp3,但是它一直说“无法解析符号改进”。这意味着它找不到导入。

这是一个曾经工作过的旧项目,但是一旦我在Android Studio 3.5中打开它,它就会开始出现此问题。

这是我的下面的应用Gradle代码:

// app Gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion '28.0.3'

    defaultConfig {
        applicationId "com.example.assign"
        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'
        }
    }
}

ext {
    supportlib = '26.0.0'
    constraintlay = '1.0.2'
    annotations = '27.0.2'
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    // Support lib
    implementation "com.android.support:appcompat-v7:$supportlib"
    implementation "com.android.support:design:$supportlib"
    implementation "com.android.support:support-v4:$supportlib"
    implementation "com.android.support:support-annotations:$annotations"
    implementation "com.android.support.constraint:constraint-layout:$constraintlay"

    implementation project(':data')
}

这是我的下面的数据Gradle代码:

// data Gradle

apply plugin: 'com.android.library'

android {
    compileSdkVersion 26
    buildToolsVersion '28.0.3'

    defaultConfig {
        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'
        }
    }
    aaptOptions {
        cruncherEnabled = false
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }
    packagingOptions {
        exclude 'LICENSE.txt'
    }
}

ext {
    retrofit = '2.4.0'
    okhttp3 = '3.11.0'
    gson = '2.8.1'
    annotations = '27.0.2'
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "com.android.support:support-annotations:$annotations"

    // Network
    implementation "com.google.code.gson:gson:$gson"
    implementation "com.squareup.retrofit2:retrofit:$retrofit"
    implementation "com.squareup.retrofit2:converter-gson:$retrofit"
    implementation "com.squareup.okhttp3:okhttp:$okhttp3"
    implementation "com.squareup.okhttp3:logging-interceptor:$okhttp3"
}

1 个答案:

答案 0 :(得分:0)

尝试为您的第三方库更改api project(':data')或api。 api "com.squareup.okhttp3:okhttp:$okhttp3" ... 说明: api与旧的compile相同。它支持传递依赖。 而implementation是直接依赖项。

例如,如果您像使用app那样在implementation中添加依赖项, implementation project(':data')

在这种情况下,您只能访问data模块文件,因此会出错。

有关更多详细信息,请检查official document

快乐编码。

谢谢