Android Studio无法找到现有资源

时间:2015-09-04 23:14:53

标签: android android-studio

由于Google最近宣布Android Studio是Android开发的官方IDE,我决定将我的工作环境从Eclipse IDE更改为Android Studio。

将项目导入Android Studio后,我遇到了一个奇怪的错误。 错误说它无法在R.drawables数组中找到两个现有的R.drawables,资源是两个png图片。

以下是数组的语法:

flag = new int[] {R.drawable.thegodfather,R.drawable.thegeneral,R.drawable.kingofcomedy,
 R.drawable.drstrangelove,R.drawable.thebiglebowski}

造成错误的两个R.drawables是thegodfather和kingofcomedy。

以下是错误消息: (1)

>     Error:(101, 32) error: cannot find symbol variable thegodfather
>     Error:(101, 78) error: cannot find symbol variable kingofcomedy
>     Note: Some input files use or override a deprecated API.
>     Note: Recompile with -Xlint:deprecation for details.
>     Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
>     > Compilation failed; see the compiler error output for details.

(2)

/Users/rawandsultani/Documents/ANDROID/V1/v11/app/src/main/java/com/exple/top100/Top100Activity.java:101: error: cannot find symbol
            flag = new int[] {R.drawable.thegodfather,R.drawable.thegeneral,R.drawable.kingofcomedy,
                                        ^
  symbol:   variable thegodfather
  location: class drawable
/Users/rawandsultani/Documents/ANDROID/V1/v11/app/src/main/java/com/exple/top100/Top100Activity.java:101: error: cannot find symbol
            flag = new int[] {R.drawable.thegodfather,R.drawable.thegeneral,R.drawable.kingofcomedy,
                                                                                      ^
  symbol:   variable kingofcomedy
  location: class drawable
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
2 errors

 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

经过无数次的清理,重建,翻转和重启之后,仍然存在同样的错误。我已经检查过资源实际上在那里,我已经删除并替换它只是为了确定。它仍然无法运作。

是什么导致Android Studio忽略了两个资源?

这是我的Android-manifest文件的开头:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.exple.v1"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="23" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        >

这是我的Gradle.build:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.exple.v1"
        minSdkVersion 11
        targetSdkVersion 23
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:support-v4:23.0.1'
}

同样,我不知道造成这个问题的原因。在Stack上搜索之后,我发现有些人遇到了类似的问题,但是通过清理项目或重新启动Android Studio来解决这个问题。

清单文件和Gradle.build用于获取额外信息 以防任何人需要查看它。

3 个答案:

答案 0 :(得分:0)

您是否在Android项目中使用正确的名称验证了appropiate文件夹中是否存在?

修改

您是否尝试删除它们(删除)并从Android Studio而不是导入版本添加它们?

答案 1 :(得分:0)

我在eclipse的导入项目中遇到了与现有资源相同的问题。在我的情况下,问题是名为 loading.png 的资源实际上是 .gif ,在我修复了扩展后,编译器生成了正确的R.drawable.loading变量

当Android Studio导入项目时,它会显示此消息,但我没有出现在子序列编辑中

:app:mergeDebugResources
AAPT out(251470765) : No Delegate set : lost message:Done
AAPT err(251470765): libpng error: Not a PNG file 

答案 2 :(得分:0)

我知道这是一个旧的(很旧的)主题,但是我遇到了同样的问题,并且我很快意识到我将资源放置在错误的文件夹中(drawable-v24而不是drawable),这就是该资源的原因。在其他设备上可以找到。切换到项目而不是android view并检查特定于变体的文件夹。