【问题标题】:Why won't Android Studio find my resources?为什么 Android Studio 找不到我的资源?
【发布时间】:2013-05-31 13:09:57
【问题描述】:

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,自动完成也可以)。

应用(子)项目的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']
        }
    }
}

【问题讨论】:

    标签: android gradle android-studio


    【解决方案1】:

    我会尝试的第一件事是文件 > 使缓存无效\重新启动 > 无效并重新启动

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

    【讨论】:

    • 感谢上帝的回答。就在这上面浪费了一个小时!谢谢。
    • 这对我不起作用,但后来我试图让 Eclipse 导入工作......
    • 不需要重启,可以Invalidate然后关闭再重新打开项目。这比重新启动要快一些。
    【解决方案2】:

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

    您还可以强制同步更改 gradle 中的某些内容(会弹出同步按钮,您应该单击它),然后恢复更改并再次单击“同步”

    【讨论】:

      【解决方案3】:

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

      <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的样式。

      【讨论】:

      • 已经试过了,结果是一样的。另请参阅屏幕截图,在 AndroidManifest.xml 中有类似的错误,例如它找不到@drawable/ic_launcher。它编译运行所以我认为代码是正确的,只是Android Studio的代码检查不知道我认为的那些资源。
      • 清理后,AS正在重建,好像一切正​​常,(gradle)后台任务一完成,又开始检查并报错。
      • 我修改了我的答案,我改变了你调用父主题Theme.Holo.Light.DarkActionBar的方式,你可以试试。对于您的可绘制对象的错误,您是否检查了可绘制对象是否在所有可绘制文件夹中?
      • 用修改后的答案试了一下。仍然没有运气。尽管 Theme.Holo.Light.DarkActionBar 按预期工作,但它甚至找不到 @android:style/Theme.Holo.Light.DarkActionBar。我之所以说是预期的,是因为它在 HoloEverywhere 演示中就是这样做的。
      • 对不起,我无法为您提供更多帮助,我正在使用 Eclipse,这种问题通常通过整个项目清理来解决。对于 Android Studio,我不知道可能是什么原因...
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        这样做:

        1- 转到android studio’s menu bar Build > 重建项目

        2- 转到android studio’s menu bar Build > 清理项目

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

        【讨论】:

          【解决方案6】:

          我有类似的问题,解决它的方法是增加

          targetSdkVersion 17 
          

          targetSdkVersion 18
          

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

          【讨论】:

            【解决方案7】:

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

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

            帮了我。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2015-07-12
              • 1970-01-01
              • 1970-01-01
              • 2015-11-24
              • 1970-01-01
              • 2023-01-29
              • 2011-01-09
              相关资源
              最近更新 更多