Android Gradle找不到符号类Gson

jen*_*gar 51 android gradle android-gradle-plugin

所以我将gson-2.2.4.jar添加到libs目录(我正在使用android studio).我的项目找不到gson的东西,所以我在"项目结构"中将它作为库依赖项添加到我的模块中.当我尝试运行该项目时,构建失败并出现以下错误:

Error:(12, 23) Gradle: package com.google.gson does not exist
Error:(37, 3) Gradle: cannot find symbol class Gson
Error:(37, 19) Gradle: cannot find symbol class Gson
Run Code Online (Sandbox Code Playgroud)

为什么我不能让这个工作?我在别处读到gradle应该自动处理所有内容,如果它放在lib目录中.

Pio*_*eer 95

我遇到了同样的问题.我刚刚在build.gradle依赖项中添加了一行,如下所示(在项目结构中没有添加任何jar),它对我有用.

dependencies {
    compile 'com.google.code.gson:gson:2.2.+'
    compile 'com.android.support:support-v4:13.0.+'
    compile 'com.android.support:appcompat-v7:18.0.+'
}
Run Code Online (Sandbox Code Playgroud)

除此之外,我还发现了一些工作所需的东西.

  1. 确保您拥有android:targetSdkVersion="18"AndroidManifest.xml文件.

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="18" />
    
    Run Code Online (Sandbox Code Playgroud)
  2. 确保你有targetSdkVersion 18build.gradle文件.

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 18
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 确保您已连接到互联网; 以便从在线中央maven存储库下载jar.

  • #Shai Surve - 这仍然适合你吗?我必须在libs中包含gson并使用"compile files"引用它. (2认同)

Ale*_* Fu 41

在项目结构设置中将其添加为依赖项是不够的.该设置仅适用于IDE.要实际构建,Gradle还需要了解它.您必须将.jar文件添加到build.gradle文件中,如此...

dependencies {
    compile files('libs/gson-2.2.4.jar')
}
Run Code Online (Sandbox Code Playgroud)

  • NB,当前版本的gson是2.3,所以使用:`dependencies {compile'c​​om.google.code.gson:gson:2.3}` (21认同)

Nic*_*cks 19

只是添加一点,

从Gradle 1.7开始,jcenter()是mavenCentral()的超集......所以不需要添加和存储库指令.

Jars将从在线中央jcenter存储库下载.所以只添加以下语句是有效的.

dependencies {
compile 'com.google.code.gson:gson:2.2.+'
}
Run Code Online (Sandbox Code Playgroud)


use*_*316 14

我遇到过同样的问题.

要解决它,请确保为android插件指定maven central

repositories {
    mavenCentral()
}
Run Code Online (Sandbox Code Playgroud)

如果要定义构建脚本,则应该添加两次

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5+'
    } 
}


repositories {
    mavenCentral() 
}


apply plugin: 'android' dependencies {    
    compile 'com.google.code.gson:gson:2.2.4'
    compile 'com.android.support:support-v4:13.0.0'   
    compile project(':libraries:volley') 
}
Run Code Online (Sandbox Code Playgroud)


Jua*_*blo 6

就我而言,我刚添加了这一行:

dependencies {

    compile 'com.google.code.gson:gson:2.7'
}
Run Code Online (Sandbox Code Playgroud)

在我的app build.gradle文件中.

到目前为止,2.7是最新的当前可用版本,根据:https: //mvnrepository.com/artifact/com.google.code.gson/gson

请检查此存储库以确保您使用的是上一个可用版本.