问题
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