Android Gradle cannot find symbol class Gson

AndroidGradleAndroid Gradle-PluginGson

Android Problem Overview


So I added gson-2.2.4.jar to the libs dir (I'm using android studio). My project couldn't find the Gson stuff so I added it as a library dependency to my module in the "Project Structure". When I try to run the project, the build is failing with the following errors:

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

Why can't I get this working? I read elsewhere that Gradle is supposed to handle everything automatically if it's put in the lib dir.

Android Solutions


Solution 1 - Android

I faced the same issue. I just added a single line as shown below in my build.gradle dependencies (without adding any jar in project structure) and it worked for me.

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.+'
}

Along with above, I found few more things which are required for this to work.

  1. Make sure you have android:targetSdkVersion="18" in AndroidManifest.xml file.

     <uses-sdk
         android:minSdkVersion="10"
         android:targetSdkVersion="18" />
    
  2. Make sure you have targetSdkVersion 18 in build.gradle file.

     defaultConfig {
         minSdkVersion 10
         targetSdkVersion 18
     }
    
  3. Make sure you are connected to internet; so that jars will be downloaded from online central maven repository.

Solution 2 - Android

Adding it as a dependency in the Project Structure settings is not enough. That setting is only for the IDE. To actually build, Gradle also needs to be aware of it. You must add the .jar file to your build.gradle file like so...

dependencies {
    compile files('libs/gson-2.2.4.jar')
}

Solution 3 - Android

Just to add a point,

As of Gradle 1.7, jcenter() is a superset of mavenCentral()...so no need of adding and repositories directive.

Jars will be downloaded from online central jcenter repository. so adding just the following statement is working.

dependencies {
compile 'com.google.code.gson:gson:2.2.+'
}

Solution 4 - Android

I've faced with same issue.

To solve it be sure that you specify maven central for android plugin

repositories {
    mavenCentral()
}

And it should be added twice if you are defining build script

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') 
}

Solution 5 - Android

In my case, I just added this line:

dependencies {

    compile 'com.google.code.gson:gson:2.7'
}

on my app build.gradle file.

By now 2.7 is last current available version according to: https://mvnrepository.com/artifact/com.google.code.gson/gson

Please check this repository to be sure you are using last available version.

Solution 6 - Android

Try this GSON . Add this on build.gradle (Module :app)

implementation 'com.google.code.gson:gson:2.2.4'

Solution 7 - Android

Add this on build.gradle (Module: app)

    dependencies {
      implementation fileTree(dir: 'libs', include: ['*.jar'])
      implementation 'com.android.support:appcompat-v7:27.1.1'
      implementation 'com.android.support:design:27.1.1'
      implementation 'com.google.code.gson:gson:2.8.0'
    }

Solution 8 - Android

Just to update the reference (I was searching for):

implementation 'com.google.code.gson:gson:2.8.5'

You can see the last version on its github repository

Solution 9 - Android

Create a folder name libs and add or edit build.gradle (works for any jar lib in folder)

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

Solution 10 - Android

Addition of following in dependencies could resolve my issues as of year:2021;

 implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
 implementation 'com.google.code.gson:gson:2.2.4'

 

Solution 11 - Android

I have resolved the issue, by making targetSdkVersion same for all library module with the app-level module.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionjensengarView Question on Stackoverflow
Solution 1 - AndroidPioneerView Answer on Stackoverflow
Solution 2 - AndroidAlex FuView Answer on Stackoverflow
Solution 3 - AndroidNicksView Answer on Stackoverflow
Solution 4 - Androiduser438316View Answer on Stackoverflow
Solution 5 - AndroidJuan PabloView Answer on Stackoverflow
Solution 6 - AndroidrhaldarView Answer on Stackoverflow
Solution 7 - AndroidAbu NayemView Answer on Stackoverflow
Solution 8 - AndroidCícero MouraView Answer on Stackoverflow
Solution 9 - AndroidhirigoshyView Answer on Stackoverflow
Solution 10 - AndroidAnk_247shbmView Answer on Stackoverflow
Solution 11 - AndroidMuhammad NomanView Answer on Stackoverflow