web-dev-qa-db-ja.com

Android GradleはシンボルクラスGsonを見つけることができません

そこで、libsディレクトリにgson-2.2.4.jarを追加しました(Android studioを使用しています)。私のプロジェクトはgsonのものを見つけることができなかったので、「Project Structure」のモジュールにライブラリの依存関係として追加しました。プロジェクトを実行しようとすると、ビルドが次のエラーで失敗します。

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

なぜこれが機能しないのですか?私は他の場所で、gradleがlibディレクトリに置かれている場合、gradleがすべてを自動的に処理することになっていることを読みました。

51
jensengar

プロジェクト構造設定で依存関係として追加するだけでは不十分です。その設定はIDE専用です。実際にビルドするには、Gradleもそれに注意する必要があります。 .jarファイルをbuild.gradleファイルに追加する必要があります...

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

私は同じ問題に直面しました。 build.gradleの依存関係に以下に示すように(プロジェクト構造にjarを追加せずに)1行追加しただけで、うまくいきました。

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

上記に加えて、これが機能するために必要なものがいくつか見つかりました。

  1. AndroidManifest.xmlファイルにAndroid:targetSdkVersion="18"があることを確認してください。

    <uses-sdk
        Android:minSdkVersion="10"
        Android:targetSdkVersion="18" />
    
  2. Build.gradleファイルにtargetSdkVersion 18があることを確認してください。

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 18
    }
    
  3. インターネットに接続していることを確認してください。そのため、jarはオンラインの中央Mavenリポジトリからダウンロードされます。

95
Sahil

ポイントを追加するだけで、

Gradle 1.7の時点では、jcenter()はmavenCentral()のスーパーセットです。したがって、ディレクティブを追加およびリポジトリする必要はありません。

ジャーは、オンラインの中央jcenterリポジトリからダウンロードされます。そのため、次のステートメントだけを追加すると機能します。

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

私は同じ問題に直面しました。

解決するには、Androidプラグインに必ずMaven Centralを指定してください

repositories {
    mavenCentral()
}

ビルドスクリプトを定義する場合は、2回追加する必要があります

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

私の場合、次の行を追加しました。

dependencies {

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

私のアプリのbuild.gradleファイル。

現在、2.7は次のように最新の利用可能なバージョンです: https://mvnrepository.com/artifact/com.google.code.gson/gson

このリポジトリをチェックして、使用可能な最新バージョンを使用していることを確認してください。

6
Juan Pablo

これをbuild.gradleに追加します(モジュール:アプリ)

    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

このGSONを試してください。これをbuild.gradleに追加します(モジュール:app)

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

3
rhaldar

参照を更新するだけです(探していました):

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

Githubプロジェクトで最新バージョンを確認できます。

ここにリンクの説明を入力

1
Cícero Moura

フォルダー名libsを作成し、build.gradleを追加または編集します(フォルダー内の任意のjar libで機能します)

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

TargetSdkVersionをアプリレベルモジュールのすべてのライブラリモジュールで同じにすることで、問題を解決しました。

0
M.Noman