web-dev-qa-db-fra.com

Android Gradle ne trouve pas la classe de symboles Gson

J'ai donc ajouté gson-2.2.4.jar au répertoire libs (j'utilise Android studio). Mon projet n'a pas pu trouver le fichier gson, je l'ai donc ajouté comme dépendance de bibliothèque à mon module dans la "Structure de projet". Lorsque j'essaie d'exécuter le projet, la construction échoue avec les erreurs suivantes:

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

Pourquoi je ne peux pas faire fonctionner ça? J'ai lu ailleurs que Gradle est supposé gérer tout automatiquement s'il est mis dans le répertoire lib.

49
jensengar

L'ajouter en tant que dépendance dans les paramètres de la structure du projet ne suffit pas. Ce paramètre est uniquement pour l'IDE. Pour construire réellement, Gradle doit également en être conscient. Vous devez ajouter le fichier .jar à votre fichier build.gradle comme suit ...

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

J'ai été confronté au même problème… Je viens d'ajouter une seule ligne comme indiqué ci-dessous dans mes dépendances build.gradle.

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

En plus de ce qui précède, j'ai trouvé peu de choses nécessaires pour que cela fonctionne.

  1. Assurez-vous d'avoir Android:targetSdkVersion="18" dans le fichier AndroidManifest.xml.

    <uses-sdk
        Android:minSdkVersion="10"
        Android:targetSdkVersion="18" />
    
  2. Assurez-vous que vous avez targetSdkVersion 18 dans le fichier build.gradle.

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 18
    }
    
  3. Assurez-vous d'être connecté à Internet. de sorte que les pots soient téléchargés à partir du référentiel central en ligne Maven.

94
Sahil

Juste pour ajouter un point,

À partir de la version 1.7, jcenter () est un sur-ensemble de mavenCentral () ... il n’est donc pas nécessaire d’ajouter une directive de référentiel. 

Les fichiers JAR seront téléchargés à partir du référentiel central en ligne jcenter . L’ajout de l’instruction suivante fonctionne donc.

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

J'ai fait face au même problème.

Pour le résoudre, assurez-vous de spécifier maven central pour le plug-in Android.

repositories {
    mavenCentral()
}

Et il devrait être ajouté deux fois si vous définissez un script de construction

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

Dans mon cas, je viens d'ajouter cette ligne:

dependencies {

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

sur mon fichier build.gradle app.

La version 2.7 actuelle est la dernière version disponible actuelle selon: https://mvnrepository.com/artifact/com.google.code.gson/gson

Veuillez vérifier ce référentiel pour vous assurer que vous utilisez la dernière version disponible.

6
Juan Pablo

Ajoutez ceci sur 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'
    }
3
Abu Nayem

Essayez cette GSON. Ajoutez ceci sur build.gradle (Module: app)

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

3
rhaldar

Créez un dossier nommé libs et ajoutez ou modifiez build.gradle (fonctionne pour toutes les bibliothèques jar du dossier)

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

Juste pour mettre à jour la référence (je cherchais):

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

Vous pouvez voir la dernière version sur son projet github:

entrez la description du lien ici

0
Cícero Moura

J'ai résolu le problème en rendant targetSdkVersion identique pour tous les modules de bibliothèque avec le module au niveau de l'application.

0
M.Noman