我想在我的项目中使用MultiMaps,因为它允许存储重复的键值。但问题是添加gradle。这是我添加的方式:
在我的子模块gradle中,我添加:
compile 'com.google.guava:guava:21.0'
然后我收到错误说要添加这些行:
如果您正在使用' java'库子模块中的gradle插件添加
targetCompatibility = '1.7'
sourceCompatibility = '1.7'
到该子模块的build.gradle文件。
所以我改变了我的gradle文件:
android {
compileSdkVersion 25
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.example.golondon"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile 'com.google.guava:guava:21.0'
targetCompatibility = '1.7'
sourceCompatibility = '1.7'
}
但我仍然得到错误。我也尝试过:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
然后它说添加插孔选项并启用插孔选项我应该更改我的" buildToolsVersion"到24.0.1。
这给出了一大堆错误,例如: 来自jar文件的Lambda需要在类路径上编译接口,未知接口是java.util.function.BiConsumer
答案 0 :(得分:2)
对于Android,你不能使用Guava 21,因为它是第一个仅在Java 1.8+上运行的版本。见Guava's README:
需要JDK 1.8或更高版本。 如果您需要支持JDK 1.6或Android,请立即使用20.0。在下一个版本(22.0)中,我们将开始提供用于Android和较低JDK版本的backport。
TLDR:使用Guava 20.0。