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