web-dev-qa-db-ja.com

Android St​​udioはインポートされたプロジェクトのRを解決できませんか?

新しいAndroid St​​udioを試しています。 build gradleオプションを使用して、Eclipseからプロジェクトをエクスポートしました。その後、Android St​​udioにインポートしました。 genの下のR.Javaファイルには、小さな赤い丸の中にjがあります。また、ソースファイルでは、リソースへの参照がある場合は常に「シンボルRを解決できません」と表示されます。 「R.layout.account_list」など.

私はIntellijを使用したことがありません。 Android St​​udioについてはまだ多くの回答が明らかにないので、助けていただければ幸いです。ありがとう!

47
joe_deniable
  1. F4を押してプロジェクト構造、左側のSDKを確認します
  2. モジュール ---> ソースタブをクリックし、ソースとしてgenおよびsrcをチェックします

PS:1年以上前の回答とメニューが変更されました。

34
Crossle Song

ファイル->キャッシュを無効にする

それから

アプリケーションを再起動

28

これまでのところ、ウェブ上の答えはどれも役に立たなかった。 ビルド>プロジェクトの作成は機能しませんでした。私にとっては、この他のオプションを選択するのと同じくらい簡単でした(Android St​​udio 1.3.1):

ビルド>モジュール 'モジュール名'を作成

13
Kevin Cooper

私の場合、EclipseからインポートされたActivityファイルに次の行がありました:

import Android.R;

そのため、すべてのRクラスはSDKに解決され、その行をコメントアウトするとすぐに、すべてがパッケージに正しくコンパイルされました。この問題に気づいたのは、プロジェクトをMacからWindowsマシンに移動したときだけでした。

7
hoss

Build.gradleを使用して署名済み.apkを構築するために必要なデータ(signingConfigs)を組み込むと、この問題が発生し始めました。コマンドラインからビルドが成功したように見えた後、R。*を使用しているクラスに入ると、すべてのR. *参照が未解決であることがわかりました。

ここでの答えは私を助けませんでした。私はプロジェクトを再インポートすることを決定し、問題を魔法のように修正しました。 [ファイル/プロジェクトのインポート...]をクリックし、アプリのルートフォルダーでbuild.gradleファイルを選択します。再インポートがこれを修正した理由を知りたいです:)

4
GaryAmundson

これはおそらく、リソースのビルドが失敗したためです

問題が修正されると、単なるBuild > Rebuild Projectがトリックを行います

3
MonoThreaded

ジャンプファイル-> 設定-> コンパイラ今チェック外部ビルドを使用

その後、プロジェクトを再構築します

2
Kuluval

特にこの問題を別のプロジェクトの一部としてプロジェクトライブラリに統合する場合、この問題に何度も不満を感じています。この問題の最新の発生では、Android libプロジェクトはWebViewを使用していました。 Gradleは、「web」という名前のサブディレクトリにR.classファイルを作成します。このサブディレクトリのパスは、ソースコードのパスとは関係ありません。これをインポートすると、問題はなくなりました。私は何を学びましたか?将来的には、単にR.classのファイル検索を行い、それが配置されているパスをメモします。次に、そのパスを使用してパッケージをコードにインポートします。これを手動で実行する必要があるのは本当に残念です。 Gradleは、生成したパッケージを自動的にインポートする必要があります。

2
AndroidDev

解決策は、プロジェクト構造ウィンドウを開くことです。 [command +を押す。 Mac OXの場合。他のプラットフォームの主要なショートカットはありません。 [ファイル]メニューで見つけることができるはずです。]そして[プロジェクト設定]セクションで[モジュール]をクリックすると、プロジェクトが表示され、生成されたR.Javaをソースとしてマークします。

Intellij idea 14.0 CEを使用しています。生成されたR.Javaはbuild/generated/source/r/debug/com/example/xxxにあります

初めて見つけるのは本当に簡単ではありません。

1
Songlin

エラーがない場合はすべてのファイルをチェックし、プロジェクトを再度再構築する必要があります。

  • ビルド>プロジェクトのリビルド。

または:

  • ファイル>設定>ビルド、実行、展開>コンパイラ

use external buildを確認し、プロジェクトを再構築した後。

1
Gladys Sanchez

上記の返信に加えて、IntelliJ(スタジオではない)で私にとってうまくいったものがあります:

Androidファセットを既存のAndroidモジュールに添付する必要があります。これを行うには、「モジュール設定」のモジュールリストからモジュールを選択し、上部の「+」ボタンを押して「Android」を選択します。 https://www.jetbrains.com/idea/webhelp/enabling-Android-support.html を参照してください。

1
crazy horse

以下の5つの手順に従います。

  1. ステップ1 ===>削除(CTRL X)XMLマニフェストファイル内の追加タグ。
  2. ステップ2 ===>ビルドを開く->プロジェクトを削除します。
  3. ステップ3 ===> XMLマニフェストファイルを開き、次のような最後の追加タグを通過します。タグマニフェストファイルの例:(<uses-permission Android:name="Android.permission.VIBRATE"></uses-permission>
  4. ステップ4 ===>再びステップ2。
  5. ステップ5 ===>ツールを開く-> Android->プロジェクトを「Gradle」と同期します。

私は同じ問題を抱えていましたが、すべてのステップの後、それは私のために働いています。

1
Zrelli Majdi

最初に、Android.Rのインポートがあるかどうかを確認します。クラスの最上部で、これはAndroid studioの自動インポートを有効にすると発生します。

r変数を使用するコードのすべての行をコメント化した後(クラス全体をコメント化するか、...)、アプリケーションを実行してR変数を再生成し、コードのコメントを解除できます。

1
sadegh saati

私の問題は、描画可能なフォルダに「default.jpg」というファイルがあり、何らかの理由ですべてのリソースが解決されなかったことです。そのファイルを削除した後に修正されました!

1
Ingo Kodba

私も同じ問題に直面しており、stackoverflowで多くの答えを経験しました。次に、この問題の解決に役立つ1つの解決策を見つけました。

AndroidManifest.xmlファイルのパッケージ名を確認してください。別のプロジェクトをコピーして新しいプロジェクトにコピーするときに、変更するのを忘れていました。

1
Vinit Thaker

IntelliJ 14で

生成されたソースが除外されているかどうかを確認してください。通常、プロジェクト構造-> [モジュール]->パス->コンパイラ出力:「コンパイル出力パスを継承」

1
Fabio Bonfante

以下に関して Crossle Songの答え から

  1. 押す F4 プロジェクト構造に移動し、左側のSDKを確認します
  2. [モジュール] ---> [ソース]タブをクリックし、ソースとしてgenとsrcをチェックします

「後でプロジェクト設定を構成するためのUIを提供します...」というメッセージにもかかわらず、これはうまくいきました。

1
Tim Medhurst

Java_HOME、CLASSPATHの設定の問題を解決します。

Java_pathを設定するときに、Java_HOMEとCLASSPATHをスキップする場合があります。

そのため、環境変数を確認してください。

クラスパス->。;

Java_HOME-> C:\ Program Files\Java\jdk(version)またはJavaがインストールされている場所

そして、エラーが発生する可能性のあるxmlファイルを確認します(ボタン、テキストなどのよく知られたものに名前を付けない

0
Fukkong

私の場合(Linux、Android St​​udio 0.8.6)、以下が役立ちます:

ファイル>プロジェクト構造>モジュール>メインモジュールの選択>そのファセットの選択>生成されたソース

「生成されたファイルのディレクトリ」の値を変更します。

から

MY_PATH/.idea/gen

MY_PATH/gen

そのコードがコンパイルされていない場合、apkはビルドされ、正常に実行されます

ただし、Android St​​udioエディターは、すべてのサブパッケージクラスでmypackage.R.anythingを「解決できない」と強調表示します

0
nxdrvr

私の場合:

参照のコピー Rファイル;つまり、gen/<package>/Rを右クリックして、リファレンスをコピーします。次に、それを解決できないコードのRに貼り付けます。

それは私のためにそれを解決しました(ここで他のすべてを試した後)。なぜそれが正直に機能したのかはまだわかりません。

0
manyways

私は同じ問題を抱えていて、余分なライブラリを削除することで修正しました。

この解決策を試すには、[ファイル]> [プロジェクト構造]に移動します(Macでは、コマンド "Apple;"を使用できます)

次に、左側のタブでアプリを選択します。依存関係タブに移動して、余分なライブラリを削除します。

0
German

これらの答えはどれも私を助けませんでした!

私の問題は問題ではありませんでした!プログラムは完全にコンパイルしてデバイス上で実行できますが、IDEにより、面倒な構文エラーが発生しました。 「R.」を含むコード行に下線を引いています。

この問題を解決する方法:

「myapp/gen/com.example.app/」フォルダーに次の3つのクラスを追加しました。

BuildConfig

package com.example.app;
public final class BuildConfig {
    public final static boolean DEBUG = true;
}

マニフェスト

package com.example.app;
public final class Manifest {
}

R

package com.example.app;
public final class R {
}
0
Behzad

build.gradle(モジュールアプリ用)でビルドツールのバージョンを確認します。次に、Android SDKマネージャーに移動して、バージョンがインストールされていない場合はインストールされているかどうかを確認するか、ビルドツールのバージョンを以下のようにインストールされているバージョンに変更します。

    Android {
          buildToolsVersion "22.0.1"
          ..
          ..
          ..
     }
0
user3013823

Eclipseからプロジェクトをインポートするときにこのエラーが発生しました。その理由は、いくつかのxmlファイルにエラーがあったためです。すべてのXMLファイルでエラーを確認します。 androidmanifest.xml、値、テーマ、スタイル、レイアウトフォルダーなどを含みます。xmlの警告は問題ありませんが、エラーはこのエラーを生成します。

その後、クリーンプロジェクトを実行して再構築します。

0
live-love

プロジェクトをクリーンにしてから、プロジェクトをgradleファイルと同期します。

0
Fakher

生成されたソースをベースプロジェクトディレクトリにないディレクトリに移動するように設定したため、intellij 2016.1でこの問題が発生しました。

たとえば、Androidファセットでは、「生成されたソース」の下に次のものがありました。

Directory for generated files: <project dir>/target/intellij-gen

これを<project dir>/genに変更すると、問題はなくなりました。

同様に、それを<project dir>/gen2に変更したときも問題はなくなりました-しかし、次のようにして、もう一度コンパイルできるように徹底的にクリーンアップする必要がありました。

rm -rf ~/.IdeaIC2016.1/system/compile-server/<project>_<hash>

生成されたすべてのディレクトリとtarget dirを削除します。

0
rmin

私にとって、Android St​​udio 1.5.1での解決策は、プロジェクト全体を少し異なる名前で再作成することでした。

パッケージの代わりに「Kommentator」という名前が付けられたいくつかの場所のため、アプリ名「Kommentator_AS」を処理しなかったと思います。

0
Berit Larsen

これと同じ問題がありました。パッケージ名は、次の3つのファイルのうち2つで間違っていました。パッケージ名を手動で更新すると、すべてが再び機能し始めました。

gen/com/example/app/BuildConfig.Java

gen/com/example/app/Manifest.Java

gen/com/example/app/R.Java

これらのファイルを変更したことがないので、何がそれらを変更したのかはわかりません。

0
Randall Sutton

私の場合、「R.layout.account_list」ではなく「Android.R.layout.account_list」が参照されていることがわかりました。 「Android」を削除するだけです。問題を修正できます。焦点を合わせすぎると見過ごされることがあるので、この助けを期待してください。

0
David C.

https://stackoverflow.com/users/1373278/hoss によって投稿されたソリューションは、私にとってはうまくいきました。ホスの投稿にまだコメントできないため、ここで複製しています。

問題のアクティビティファイルからimport Android.R;を削除します。

私のセットアップ:

Android Studio 1.2.2

1つのMacからGitにプロジェクトをエクスポートしました(すべてが機能していました)。次に、Gitから別のMacにプロジェクトをインポートしました。リソースファイルの解決を停止したとき。

私はこのスレッドですべてを試しました:

  1. キャッシュを無効にして再起動する
  2. .imlファイルと.ideaフォルダーを削除し、プロジェクトを再インポートします
  3. プロジェクトのクリーンとリビルド

アクティビティJavaファイルからimport Android.R;を削除する以外、何も機能しませんでした。

今後この問題を回避するには、.ideaフォルダーを.gitignoreファイルに追加します。 Android St​​udioには、gitignore用のgitからの素敵なプラグインがあります。このプラグインをインストールし、.idea > Add to .gitignoreを右クリックします

0
dessertcook

正常にクリーンとリビルドを試みた後、resフォルダーに破損ファイルがないかどうかを確認してください。

私の場合、破損した.pngファイルがすべての問題を引き起こしました。

0
Thorian