私がAndroid Studioで作成しようとしたすべてのプロジェクトで、Rを使用している箇所はすべて赤でマークされ、"cannot resolve symbol Rquot;というエラーメッセージが表示されますが、コンパイルは成功し、アプリケーションは実行されます。しかし、コンパイルは成功し、アプリケーションは実行されます。これは、自動補完がブロックされ、コード全体に巨大な赤い波線が表示されるので、本当に困ったものです。
Android Studio 1.7.0を使用しており、デフォルトの設定でプロジェクトを作成しています。スクリーンショットを添付します。
.
これは私の build.gradle
です。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}
これは、プロジェクトの構造がどうなっているかを示しています。
.
これを修正する方法はありますか?
Android studioでは、いくつかの理由により、エディタ用とコンパイラ用で異なる設定を使用しています。コンパイラで動作するならば、それは良いことです。エディタで動作しない場合。(未解決のファイルを見てしまう)。
プロジェクトのソースにいくつかのディレクトリを追加する必要があります。例えば、すべてのリソースは"source"としてマークされなければなりません。
ファイル->プロジェクトの構造
モジュールを選択し、プロジェクトを選択します。そして、sources
タブを選択します。右側にあるリソースディレクトリを探し、青い "source"ボタンをクリックします。すべてを閉じれば、動作するはずです。
また、次のことを確認してください。
また、build/source/r/debug
もソースであることを確認する必要があります。私の場合、すべての build/source/*/debug
がソースとしてマークされています。
<?xml version="1.0" encoding="UTF-8"?>
<module external.system.id="GRADLE" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android" name="Android">
<configuration>
<option name="SELECTED_BUILD_VARIANT" value="debug" />
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
<option name="ALLOW_USER_CONFIGURATION" value="false" />
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
</configuration>
</facet>
<facet type="android-gradle" name="Android-Gradle">
<configuration>
<option name="GRADLE_PROJECT_PATH" value=":SherlockHolmes" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/build/source/r/debug" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/build/source/aidl/debug" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/build/source/rs/debug" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/build/source/buildConfig/debug" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/build/res/rs/debug" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/build/source/r/test" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/build/source/aidl/test" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/build/source/rs/test" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/build/source/buildConfig/test" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/build/res/rs/test" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/res" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/assets" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/res" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/resources" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/apk" />
<excludeFolder url="file://$MODULE_DIR$/build/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/bundles" />
<excludeFolder url="file://$MODULE_DIR$/build/classes" />
<excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" />
<excludeFolder url="file://$MODULE_DIR$/build/exploded-bundles" />
<excludeFolder url="file://$MODULE_DIR$/build/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/libs" />
<excludeFolder url="file://$MODULE_DIR$/build/manifests" />
<excludeFolder url="file://$MODULE_DIR$/build/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
</content>
<orderEntry type="jdk" jdkName="Android 4.2.2" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Sherlock.aar" level="project" />
<orderEntry type="library" name="SlidingMenu.aar" level="project" />
<orderEntry type="library" name="support-v4-13.0.0" level="project" />
</component>
</module>
<?xml version="1.0" encoding="UTF-8"?>
<module external.system.id="GRADLE" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android-gradle" name="Android-Gradle">
<configuration>
<option name="GRADLE_PROJECT_PATH" value=":" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
これについてはよくわかりませんが、何も変わらないはずなのに動くと聞きました。R`を必要とするすべての行をコメントアウトした後、プロジェクトをコンパイルして保存してみてください。その後、すべてが赤くなっていないときにそれらを戻してみてください。不思議なのは、ビルドやソースが生成されないことです。
また、この質問では、"compiler use external build".をチェックすることを提案しています。
また、あなたのJavaコードには、import android.r;
がないことを確認してください。import android.r;`がないことも確認してください。あなたが示したものからすると、すべて順調に見えます。ただ、ビルド/ソースが作成されていないのが不思議です。例えば、私はbuild/apkを持っていません。もしかしたら、リリースモードになっていて、それらのディレクトリが作成されていないのかもしれません。
もっと良い方法が見つかるまでの一時的な解決策です。
1.1. Everythingを使って、R.javaがどこで作られているかを調べます。私の場合は C:GRAM FILES (x86)GRAM FILES (x86)GRAM FILES (x86)GRAM FILES (x86)GRAM FILES (x86)GRAM FILES (x86)GRAM FILES (x86)GRAM FILES (x86)GRAM FILES (x86)GRAM FILES (x86)GRAM FILES (x86)GRAM FILES (x86)GRAM FILES (x86)GRAM FILES (x86)GRAM FILES (x86)
2.Project ビューでモジュールをクリックし、F4 を押します。警告は無視してください。
3.Add Content Root"をクリックし、前述のフォルダを選択します。青色で表示されていることを確認してください(ソースとして)。
これをやった後、突然、すべての警告がなくなりました。問題は、他の人と共同作業をしている場合、フォルダ名がそれぞれのマシンで異なるので、同期の際には注意が必要です。