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

tnkciper  于 12个月前  发布在  Android
关注(0)|答案(9)|浏览(159)

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'”。
该应用程序编译和运行没有问题,但我没有任何代码完成的资源。检查似乎找到了HoloBarSherlock资源和HoloEverywhere资源(例如Holo。主题。光。黑暗酒吧,自动完成工程)。
app(sub)项目的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']
        }
    }
}

aiqt4smr

aiqt4smr1#

我会尝试的第一件事是 * 文件>无效缓存\重新启动>无效并重新启动 *。
这解决了我在Android Studio中遇到的所有资源问题。

mnowg1ta

mnowg1ta2#

尝试使用工具栏中的“将项目与Gradle文件同步”按钮(带蓝色箭头的绿色圆圈),它对我有效
您还可以强制同步更改Gradle中的某些内容(同步按钮将弹出,您应该单击它),然后恢复更改并再次单击“同步”

w51jfk4q

w51jfk4q3#

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

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

rqdpfwrv

rqdpfwrv4#

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

31moq8wy

31moq8wy5#

这样做:

1-进入android studio’s menu barBuild>重建项目
2-进入android studio’s menu barBuild>清理项目
3-转到android studio’s menu barFile>无效缓存/重新启动

gywdnpxw

gywdnpxw6#

我有类似的问题,什么固定它对我来说是增加价值

targetSdkVersion 17

字符串

targetSdkVersion 18


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

uinbv5nw

uinbv5nw7#

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

4ktjp1zp

4ktjp1zp8#

我遇到了同样的问题。在我的情况下,这是由于我有一个模块与应用模块的包名称相同,所以Android Studio将模块中的res文件夹识别为应用模块的资源。我以这种方式解决了它:

  • 更改了模块的包名,在中间添加了一个.feature;
  • 创建了一个“feature”文件夹,并将每个变体(main,debut,androidTest,test)的包复制到其中,以使包名称与文件路径相匹配;
  • 固定每个进口;
  • 使该高速缓存无效。
c86crjj0

c86crjj09#

清洁和重建:

尝试清理和重建项目。在Android Studio中,您可以通过选择**“Build > Clean Project”,然后选择“Build > Rebuild Project "**来执行此操作。

  • 希望这将解决您的问题 *:):)

相关问题