Error: when I replace compile with implementation in gradle(dependency)

╄→尐↘猪︶ㄣ 提交于 2019-12-22 08:49:28

问题


I update my Android Studio from 3.0.1 to 3.1.0

But after the update when I build my project it shows 2 warning:

1. Replace compile with implementation (and compile support will be ended at end of 2018)

2. Replace testCompile with testImplementaion (and testCompile support will be ended at end of 2018)

So, finally do these changes but after that, it shows some error:

build.gradle(Module:app)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "biz.coolpage.aashish.app"
        minSdkVersion 17
        targetSdkVersion 27
        versionCode 4
        versionName "1.2.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:design:27.1.0'
    implementation project(':library')
}

build.gradle(Project:Abc)

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
        maven {
            url "https://maven.google.com"
        }
    }
}

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

回答1:


Try using api instead of implementation inside your library's gradle. If you have submodules and want to expose the libraries in a transitive manner api should be used. implementation would import the library for the specific project. Also you might have to add

implementation (project(":library")) {
    transitive = true
}

For example in your build.gradle file of your library module use:

api 'com.android.support:appcompat-v7:27.1.0' 

instead of

implementation 'com.android.support:appcompat-v7:27.1.0'

If nothing works you can try to invalidate cache and restart



来源:https://stackoverflow.com/questions/49515689/error-when-i-replace-compile-with-implementation-in-gradledependency

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