如何将MultiMaps gradle添加到android

时间:2017-02-27 14:28:49

标签: android gradle guava multimap

我想在我的项目中使用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

1 个答案:

答案 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。