Ily*_*gan 150 android gradle android-studio
在我尝试在Android Studio中创建的每个项目中,R的所有用法都标记为红色,并显示错误消息"无法解析符号R",但编译成功并运行应用程序.这真的很烦人,因为它会阻止自动完成并在我的代码中显示巨大的红色波浪线.
我正在运行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
}
}
Run Code Online (Sandbox Code Playgroud)
这就是项目结构的样子:

知道如何解决这个问题吗?
Bla*_*rai 62
我发现这个问题是因为我的XML文件出错了.修复XML错误后,执行clean/build,修复了问题.
小智 44
单击Build -> Rebuild Project,然后单击Tools -> Android -> Sync Project with Gradle Files.
cra*_*ned 31
确保AndroidManifest.xml包装名称正确无误.当我R.whatever被标记为红色时,这解决了我的问题!
我还建议检查所有gradle文件以确保这些包名称正确无误.这不应该使一切都变红,但它会阻止你的gradle文件正确同步.
小智 12
我在'com.android.tools.build:gradle:3.3.1'中遇到了类似的问题,我尝试了上述所有解决方案,但均无效果。它实际上是build:gradle 3.3.1问题。我将其更改为3.2.1,然后它起作用了。
因此,build:gradle版本可能会出现问题。
您现在应该看到"MyAppProject/MyApp/build/source"文件夹.这应该包含"r"文件夹(生成R.java文件的位置).在这里,你应该看到蓝色的"debug","release"(如果你的build.gradle中有一个projectFlavour,它们将在""文件夹下).在该调试/发布文件夹中应该是您的应用程序包名称,然后是包含所有资源ID的R.java文件.
出于某些原因,Android studio对编辑器和编译器使用不同的配置.如果它适用于编译器,那么它很好.如果它对编辑器不起作用.(它看到未解决的文件).
您需要将一些目录添加到项目源中.例如,所有资源都应标记为"源".
文件 - >项目结构
选择"模块",然后选择您的项目.然后选择sources标签.在右边找到您的资源目录,然后单击蓝色的"源"按钮.关闭所有它应该工作.
此外,你必须确保这一点
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>
Run Code Online (Sandbox Code Playgroud)
<?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>
Run Code Online (Sandbox Code Playgroud)
不确定这个,但我听说它工作,而我很确定它不应该改变任何东西.在评论所有需要的行后,尝试编译并保存项目R.然后当一切都不是红色.尝试添加它们.奇怪的是,你的构建/源代码没有生成.
此问题还建议检查"编译器使用外部构建"
Android Studio不为我的导入项目生成R.java
还要确保在你的java代码中没有.import android.r;从你所展示的,一切似乎都很好.奇怪的是没有创建构建/源.例如,我没有build/apk.可能是你处于发布模式,它不会创建这些目录.
这是我的临时解决方案,直到找到更好的解决方案:
使用Everything,找到R.java的创建位置.就我而言
C:\Program Files (x86)\Android\android-studio\system\compiler\<project-name>.cb969c52\.generated\aapt\<module-name>.6badd9a4\production\com\<project-name>\<module-name>
在项目视图中,单击该模块,然后按F4.忽略警告.
单击"+添加内容根"并选择上述文件夹.确保它标记为蓝色(作为来源).
在我这样做之后,突然所有的警告都消失了.问题是,如果您与其他人协作,每台计算机上的文件夹名称都不同,因此在同步时要小心.
这为我工作:
关闭并重新打开项目
如果Gradle第一次无法同步,请按“与Gradle文件同步项目”(位于顶部菜单中的AVD管理器图标旁边)重复1-2。(我的工作第二次了)。
使用Android Studio 1.2.2
我通过以下方式解决了它:
1) Sync Project with gradle files
2) Build -> Clean Project
3) Build -> Rebuild Project
4) File -> Invalidate caches
//imp step
5) Check your xml files properly.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
434976 次 |
| 最近记录: |