Android Studioのインラインコンパイラで赤いエラーが表示されるが、gradleを使用したコンパイルは正常に機能する


147

この質問に従って、Square Wireライブラリを使用するようにAndroid Studioでプロジェクトを設定しました。

Build-> Compile Project正常に動作します。

2:03:10 PM Compilation completed successfully in 31 sec

ただし、生成されたプロトコルバッファーファイルの1つを開くと、Squareパッケージが認識されません。

Android Studioのインラインコンパイルエラー

別の症状Messageとして、Square クラスから継承されたメソッドは、ビルドおよび実行が正常に行われていても、「メソッドを解決できません」というコンパイルエラーがエディターに表示されます。

Android Studioの単一行コンパイルエラー

build.gradleプロジェクトのモジュールに依存関係を追加するだけでなく、何かをする必要がありますか?


私は自分のライブラリを使用して、同様の問題(ではない外部のもの)、私はここにこの問題を解決するために管理する方法を確認していた:stackoverflow.com/a/50569818/373033
nah0y

回答:


132

次の手順が役立ちます

  1. プロジェクトを閉じて、プロジェクトフォルダで削除します project/.idea
  2. ~/.gradleフォルダを削除します。

プロジェクトを再度開きます。すべてを解決する必要があります。


1
この問題に時間を費やす。ありがとう。私の間違いは、.ideaではなく.gradleを削除しただけでした
M

2
これは私にとって.gradleと.ideaを削除し、無効化して再起動すると問題が解決しました。そしてgradleと同期します。
Pankaj

.gradleフォルダC:\Users\Hasnain\.gradleを別のディレクトリに移動しました 。その後、Android Studioは各クラスごとにエラーを表示します。次に、上記の手順を実行すると、問題が解決します。
hasnain_ahmad

38
.ideaディレクトリ内のすべてを削除すると、すべてのプロジェクト設定がリセットされる可能性があるため、お勧めできません。他のすべての解決策を試した後、問題を削除.idea/librariesして.idea/caches最終的に解決しました。
fdermishin、

AS 3.1.3で非常にうまく機能しました。キャッシュを無効にする必要すらありませんでした。ASが今より速く構築されることを期待しましょう!
誰かどこか

111

ここで正しい軌道に乗ってくれたfree3domに感謝します。

診断

Sync Project with Gradle FilesAndroid Studio のオプションは、Project Structureライブラリを最新に保つようです。

Gradle Sync

しかし、私の場合、いくつかのエラーがありました:

エラーが見つかりました

(あまり明確ではない)リンクを展開すると、詳細が表示されました。ワイヤーランタイムライブラリが間違った場所に表示されていました。

図書館

これは、JARをlibsフォルダーにインポートした元の構成からの二日酔いのようです。

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

その後、Maven Centralから直接インポートするように変更しました(ここを参照)。古い設定が新しい設定で上書きされることはなかったようです。

修正

修正は、ライブラリの依存関係をProject Structure画面から削除してから、Sync Project with Gradle Filesもう一度削除することです。

もっと詳しく

.idea/libraries/wire_runtime_1_2_0.xml直接開くと、リソースに使用されているパスを確認することもできます。

私の壊れたものは:

  <component name="libraryTable">
  <library name="wire-runtime-1.2.0">
    <CLASSES>
      <root url="jar://$PROJECT_DIR$/MY_MODULE/libs/wire-runtime-1.2.0.jar!/" />
    </CLASSES>
    <JAVADOC />
    <SOURCES />

ライブラリを削除して再度追加した後、次のように変更されましroot urlた。

      <root url="jar://$USER_HOME$/.gradle/caches/artifacts-26/filestore/com.squareup.wire/wire-runtime/1.2.0/jar/44e7acbd5eb6f29698181dc3d67a60acf7efee80/wire-runtime-1.2.0.jar!/" />

更新

Android Studio v0.4.4 は、同じ症状を持つ他のバグ修正しているようです。古いバージョンをお持ちの場合は、アップグレードしてください。


3
Dan Jに感謝します。解決策を試す前に、これより簡単な方法を試してみました(私によると)うまくいきました。エディターの右側にあるGradleパネル(「Maven Projects」と「Commander」の上)を開き、更新ボタンをクリックします。これでモジュール設定が更新されました。@Matteo Danieliへのクレジット(参照:stackoverflow.com/a/17043001
almighty972

1
ローカルjarの依存関係を削除する必要がありました。インスピレーションのおかげで解決しました
jhegedus

「Gradleファイルを使用してプロジェクトを同期」をクリックしたところ、すべて正常になりました。どうもありがとうございました!あなたは私の一日を保存しました
ホルヘガブリエルシケイラ2017年

私のために働いていませんでした。しかし、.gradleと.ideaを削除しても問題ありませんでした
Golnar

現在、同じボタンが下矢印の付いた象のアイコンとして表示されています。
tm

87

シンプルなソリューション

リンクをたどると、うまくいきました。

  1. FileAndroid Studioの左上にあるメニューからオプションを選択します。
  2. オプションを選択します:Invalidate Cache/Restartダイアログが開きます。
  3. オプション付きの最初のボタンをクリックします。 Invalidate and Restart
  4. Android Studioを閉じて再起動します。また、プロジェクトの再インデックスが開始されます。

それは私の問題を解決しました

[ファイル] > [ キャッシュ/再起動の無効化] > [ 無効化して再起動]に移動します

YouTubeのソースはこちら


これでうまくいきました。Wi-Fiの受信状態が悪い場所でプログラミングを試みたところ、Android Studioはどこにでもエラーを示していました。(!!!)次に、Wi-Fi接続が良好であることを確認して再構築しましたが、エラーは残りました。クリーン/ビルドでさえそれを解決しませんでした。キャッシュを無効にすることで修正されました。
誰かどこか

FedoraでAndroid Studio 2.1.3を使用する。この解決策は私にとってうまくいきました。libgdxツールが追加され、インポートにエラーがありましたが、正常にコンパイルされました。クローズと再オープンは機能しませんでしたが、無効化と再起動は正常に機能しました。
JoeMoe1984

1
AS 3.1.4で動作しました!すべての提案のうち、これはそれを処理する正しい方法だと思います。Android Studioのメニューコマンドによるものです。これは、ファイル環境で手動でリセットするよりもはるかに優れています。
JanBergström2018

3.5.1で私のために働きました
Neela

44

1)Gradleアイコンをクリックします(Android Studioの右側)

ここに画像の説明を入力してください

2)更新ボタンをクリックして、問題が解決するまで待ちます:D

ここに画像の説明を入力してください


Android Studio 3.1以降では、[ファイル]> [キャッシュ/再起動の無効化]> [無効化して再起動]に移動してください。
DroidDev

17

私はまだAndroid Studio v3.2.1で同じ問題を抱えていて、gradle syncが機能しなかったときに、フォルダーのこれら2つのサブフォルダーを削除するだけで問題を解決しました.idea.ideaフォルダー全体を削除する必要はありません)。

  • ./idea/caches
  • ./idea/libraries

ほとんどの場合それは私の問題を解決します。他のいくつかでは、「キャッシュを無効にして再起動する」か、Gradleのバージョンを変更する必要があるかもしれません。
GoRoS

12

私の場合、プロジェクトの.gradleおよび.ideaフォルダーを削除すると問題が解決しました。


11

Androidスタジオでこれを行うだけです。

ファイル->キャッシュを無効化/再起動->無効化して再起動

これでうまくいきました。./gradleまたは./ideaフォルダをクリアする必要はありません


9

これに対する私のハッキーな修正-

  1. build.gradleファイルを開く
  2. 中身をすべて切り取る dependencies{}
  3. 非常に安全な一時保管のためにメモ帳に貼り付けます
  4. build.gradleファイルで「今すぐ同期」を選択します
  5. 同期が失敗するのを待ちます
  6. 依存関係を貼り付けます
  7. もう一度「今すぐ同期」

多くの解決策を試しましたが、これが私にとって唯一の修正でした。


7

Android Studio 3.1にアップグレードした後、この問題が発生しました。使用しているすべてのコンポーネントをアップグレードすることで問題を解決しました。それで、build.gradle(アプリ)の次のエントリを変更しました:

  1. SDKをアップグレードします(「compileSdkVersion 25」から「compileSdkVersion 26」またはこのノートを読んだ場合はそれ以上):

    // compileSdkVersion 25

    compileSdkVersion 26

    コメント:この変更により、プログラムは次の同期中に新しいSDKをダウンロード/インストールする必要がありました。

  2. appcompat-v7をアップグレードします。

    //実装 'com.android.support:appcompat-v7:25.4.0'

    実装 'com.android.support:appcompat-v7:26.1.0'

  3. Firebaseをアップグレードします。

    // implementation 'com.google.firebase:firebase-ads:11.4.2'

    実装 'com.google.firebase:firebase-core:12.0.1'

    実装 'com.google.firebase:firebase-ads:12.0.1'

  4. プロジェクトbuild.gradleで、google-servicesをアップグレードします。

    // classpath 'com.google.gms:google-services:3.1.0'

    クラスパス 'com.google.gms:google-services:3.2.0'

  5. Gradleをアップグレードします(4.4から4.6へ)。gradle-wrapper.propertiesから:distributionUrl = https://services.gradle.org/distributions/gradle-4.6-all.zip

これらの変更後、プロジェクトをクリーンアップし、キャッシュ/再起動を無効にし、.idea / librariesのコンテンツを削除して再同期します(順序については不明ですが、これらのすべてのアクティビティで問題が解決しました)。


1
新しいバージョンがない他のコンポーネントについてはどうですか?
Amir Dadgari

知りません。これらは、私のプロジェクトで使用していたコンポーネントです。
パブロアルフォンソ

こんにちはアミール、公式ウェブサイトによると、gradle 4.4が利用可能な最新の(2018年3月現在)Gradle 4.6はどこで見つけましたか?
パブロアルフォンソ

Gradle 4.6の場所を見つけました。答えを更新しました。ありがとう。
パブロアルフォンソ

4
.idea / librariesのコンテンツを削除してください。どうもありがとう
Tram Nguyen

7

.ideaのライブラリフォルダーを削除すると、問題が解決しました。これは、に位置しており、プロジェクトのルート/ .idea /ライブラリ。

Android Studio 3.1.4を使用しています


2
これは機能しましたが、無効にして再起動する必要もありました。
ダンアンダーソン

5

プロジェクトが正常にコンパイルされているが、未解決のクラスがある場合の以下の手順(すべてのクラスの使用は、すべてのファイルで赤色になります)

ステップ1. .gradleファイルを削除する

ステップ2. .ideaファイルを削除する

ステップ3. システム上の他のAndroidプロジェクト新しいAndroid Studioウィンドウを開き、エラーでプロジェクトを閉じる

ステップ3。スタジオのツールバーAndroid Studio-> File-> Openからプロジェクトをもう一度開く/インポートし ます

注:プロジェクトをインポートすると、新しい.gradleおよび新しい.ideaフォルダーが、コンパイラーによって解決された依存関係とともに自動生成されます。


2

上記のすべての回答がうまくいかない場合。依存関係を最新バージョンに更新してみてください。それは私のために働いた。


2

上記の修正のほとんどを試してみましたが、実際に機能したのは、.AndroidStudio configフォルダーをすべて削除してから、Android Studioを再起動することでした。

  • 場所:C:\ Users \ your.username

2

簡単な方法を見つけた

  • アプリレベルを開く build.gradle
  • エラーと同期を示している依存関係を削除します。
  • 依存関係と同期を再度追加します。

エラーがなくなった!

前

後



2

これらの問題を回避するために、誰もが異なるアプローチを使用しているようです。他の人よりも少し侵襲性が低いと思う別のものを提案します。含めるaarライブラリからの変更を導入するとき、プロジェクトの「settings.gradle」ファイルを開きます。

次に、プロジェクトのリストからメインプロジェクトモジュールを切り取ります。

include ':mainproj',

プロジェクトを同期します。次にそれを貼り付けて、もう一度プロジェクトを再同期します。これは手動の削除手順の一部と同じであると思いますが、これによりIDEからのほうが少し速く、苦痛が少なくなります。


私にとってはうまくいきます。ありがとう!@Jay Snayder
Shivam

2

以下の方法で修正

方法1

ファイル>キャッシュ/再起動の無効化>無効化して再起動

方法2

  • 特定のプロジェクトでのみこのエラーが発生している場合は、これを行ってください
   1. Close current project
   2. Go to your project path C://User/Android studio project/your project
   3. Delete two files .gradle and .idea
  • すべてのプロジェクトでこのエラーが発生している場合は、これを行ってください
1. Close Android studio
2. Go to the file C://Users/your username/
3. Delete files .gradle , .cache ,.android, .AndroidStudio3.5

1

これらの解決策は、Android Studio 0.5.8での同じ問題の解決にはなりませんでした。

私は同じ質問への私の回答を説明しました(私は推測します):https : //stackoverflow.com/a/23891829/534698〜/ .AndroidStudioPreviewディレクトリ(Ubuntu)を削除しました Android Studioのすべての設定を見逃しましたが、動作します。


これは私のために働いた唯一のものです。Android Studio 1.0.2
Bobby Hargett 2014

1

私の場合、何らかの理由でAndroidプラグインのバージョンが設定されていませんでした。キャッシュをクリアして.gradleと.ideaも削除しようとしましたが、うまくいきませんでした。ついに何時間もさまよった後、これを見つけました。

ファイル>プロジェクト構造


0

以前に同様の問題がありましたが、キャッシュを無効にして再起動しても解決しませんでした。私はGradle Syncを実行しただけで、すべてがうまくいきました。


0

プロジェクトをクリーニングすることで問題を解決しました Build->Clean Project


0

私は、モジュールライブラリのjarを参照しています。jar内のシンボルを解決できません。だから私は自分の状況の解決策を見つけます。provided方法を使用します。

provided fileTree(include: ['xxx.jar'], dir: '../moduleX/libs')

0

上記のすべての回答がうまくいきませんでした。私の問題は、3つのモジュールがあり、そのうちの2つが同じパッケージ名であったことです。

Android Studio <= 3.2.1では問題ありませんでした。

Android Studio> 3.2.1の場合、リソースは赤でした。

私はこの言及のようにここで解決しました(各モジュールの異なるパッケージ名を作成しました):すべてのAndroid Studioバージョン> 3.2.1は赤いリソースを表示しますが、それでもコンパイルします


0

次の手順で同じ問題を解決しました。

  1. Gradleのライブラリバージョンを任意の乱数に更新します。例:lib_1.0.0-> lib_1.0.0.0

  2. Gradle Sync

  3. 同期でエラーが表示される

  4. バージョン変更を元に戻すlib_1.0.0.0-> lib_1.0.0

  5. Gradle Sync

インポートでJavaファイルを開き、エラーがクリアされたことを確認します。


0

解決策はどれも私にとってはうまくいきませんでした。私は自分のコンピューターからjavaをアンインストールし、android studioを実行して、アンインストールが検出されたことを確認してから、もう一度インストールしました。

この方法を選択する場合は、jdkパスを変更して、プロジェクト構造に新しいパスを設定してください。それが機能しない場合は、先に進んでjavaアンインストールしてください


0

Android Studioを再起動する前に、クリーンプロジェクトとリビルドプロジェクトを作成するだけで問題が解決します。多分Android Studioは実際にはインターフェースの参照を更新しません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.