Android Studio'da oluşturmaya çalıştığım her projede, tüm R kullanımları "cannot resolve symbol R" hata mesajıyla kırmızı olarak işaretleniyor, ancak derleme başarılı oluyor ve uygulama çalışıyor. Otomatik tamamlamayı engellediği ve kodumun her yerinde kocaman kırmızı dalgalı çizgiler gösterdiği için bu gerçekten can sıkıcı.
Android Studio 1.7.0 çalıştırıyorum ve projeyi varsayılan ayarlarla oluşturuyorum. Bir ekran görüntüsü eklenmiştir:
Bu benim build.gradle
dosyam:
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
}
}
Proje Yapısı bu şekilde görünür:
Bunu nasıl düzeltebileceğime dair bir fikrin var mı?
Bazı nedenlerden dolayı, Android studio editör ve derleyici için farklı yapılandırmalar kullanır. Eğer derleyici için çalışıyorsa o zaman iyidir. Eğer editör için çalışmıyorsa. (çözülmemiş dosyaları görür).
Projenizin kaynağına bazı dizinler eklemeniz gerekir. Örneğin tüm kaynaklar "source" olarak işaretlenmelidir.
Dosya->Proje Yapısı
Önce "Modules", ardından projenizi seçin. Ve kaynaklar
sekmesini seçin. Sağ tarafta kaynak dizininizi bulun ve mavi "source" düğmesine tıklayın. Hepsini kapatın ve çalışması gerekir.
Ayrıca, şunlardan emin olmanız gerekir
build/source/r/debugaynı zamanda bir kaynaktır. Benim tüm
build/source/*/debug` kaynak olarak işaretlenmiştir.
<?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>
Bundan emin değilim, ancak hiçbir şeyi değiştirmemesi gerektiğinden oldukça emin olduğum halde çalıştığını duydum. R` gerektiren tüm satırları yorumladıktan sonra projeyi derlemeyi ve kaydetmeyi deneyin. Sonra her şey kırmızı olmadığında. Onları geri eklemeyi deneyin. Garip olan şey, derleme/kaynağınızın oluşturulmamasıdır.
Ayrıca bu soru "compiler use external build" kontrolünü önermektedir;
Ayrıca java kodunuzda no olduğundan emin olun. "import android.r;` gösterdiğinizden, her şey yolunda görünüyor. Sadece yapı/kaynağın oluşturulmaması garip. Örneğin, bende yapı/apk yok. Belki de sürüm modundasınız ve bu dizinleri oluşturmuyor.
Daha iyi bir çözüm bulana kadar geçici çözümüm bu:
Everything kullanarak R.java dosyasının nerede oluşturulduğunu bulun. Benim durumumda
C:\Program Files (x86)\Android\android-studio\system\compiler\
Proje görünümünde modüle tıklayın ve F4 tuşuna basın. Uyarıyı dikkate almayın.
İçerik Kökü Ekle"ye tıklayın ve yukarıda bahsedilen klasörü seçin. Mavi renkle (kaynak olarak) işaretlendiğinden emin olun.
Bunu yaptıktan sonra, aniden tüm uyarılar gitti. Sorun şu ki, başka kişilerle işbirliği yapıyorsanız, klasör adı her makinede farklıdır, bu nedenle senkronize ederken dikkatli olun.