为什么Android Studio不会找到我的资源?

时间:2013-05-31 13:09:57

标签: android gradle android-studio

Android Studio代码检查似乎找不到任何项目特定的资源。

例如我的styles.xml

<resources>
  <style name="AppBaseTheme" parent="Holo.Theme.Light.DarkActionBar">
  </style>

  <!-- Application theme. -->
  <style name="AppTheme" parent="AppBaseTheme">
  </style>
</resources>

标记第二个AppBaseTheme红色并说:“无法解析符号'AppBaseTheme'”。

应用程序编译并运行没有问题,但我没有任何代码完成资源。检查似乎找到了ActionBarSherlock资源和HoloEverywhere资源(例如Holo.Theme.Light.DarkActionBar,自动完成也可以)。

app(子)项目的build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4.1'
    }
}
apply plugin: 'android'

dependencies {
    //compile files('libs/android-support-v4.jar')
    compile project(':abs-library')
    compile project(':he-library')
    compile project(':he-addons:slider')
    compile project(':he-addons:preferences')
    // using a custom repo here
    compile 'com.google.android:support-v4:r13'
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 17
    }

    sourceSets {
        main {
            manifest.srcFile 'src/main/AndroidManifest.xml'
            java.srcDirs = ['src/main/java']
            // abs-res, he-res are symlinks to ../abs-library/res
            // and ../he-library/res 
            res.srcDirs = ['src/main/res', 'abs-res', 'he-res']
        }
    }
}

7 个答案:

答案 0 :(得分:43)

我要尝试的第一件事是文件&gt; Invalidate Caches \ Restart&gt;无效并重新启动

这解决了我在Android Studio上遇到的所有资源问题。

答案 1 :(得分:6)

尝试使用按钮&#34;使用Gradle文件同步项目&#34;在工具栏(带有蓝色箭头的绿色圆圈)中,它对我有用

您还可以强制同步更改您的gradle中的内容(同步按钮将弹出,您应该单击它),然后还原更改并再次单击&#34;同步&#34;

答案 2 :(得分:4)

你的样式定义有问题,你必须调用用“@”定义的样式:

<resources>
  <style name="AppBaseTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
  </style>

  <!-- Application theme. -->
  <style name="AppTheme" parent="@style/AppBaseTheme">
  </style>
</resources>

@style/AppBaseTheme表示系统将在文件styles.xml中调用名为AppBaseTheme的样式。

答案 3 :(得分:4)

通过关闭项目,删除.idea文件夹和所有.iml文件,使用./gradlew clean进行清理并重新导入项目,看起来问题已解决。这次我在使用gradle模型导入时勾选了自动导入复选框。

答案 4 :(得分:3)

这样做:

1 - 转到android studio’s menu bar Build&gt; 重建项目

2 - 转到android studio’s menu bar Build&gt; 清洁项目

3 - 转到android studio’s menu bar File&gt; 使缓存无效/重新启动

答案 5 :(得分:1)

我有类似的问题,为我修复的是增加

的价值
targetSdkVersion 17 

targetSdkVersion 18

当您使用依赖项时可能会发生这种情况,期望您使用特定的SdkVersion。在我的情况下,我的targetSdkVersion为25,但appcompat至少需要26版。

答案 6 :(得分:0)

我已经尝试了本主题中的所有解决方案,最后像这样传递了完整的包路径:

setContentView(com.example.dontknowwhat.R.layout.main_activity)

帮助了我。

相关问题