Android Studio无法找到现有符号

时间:2015-09-06 16:45:08

标签: android android-studio

我最近决定从Eclipse改变我的工作环境 到Android Studio。我决定通过Android Studio导入我的Eclipse项目。

问题是,当我编译我的代码时,我遇到了2个错误,表示它找不到两个现有符号。这些符号实际上是两个png图片,它们保存在res<可绘制的<华电国际。尽管如此,程序还是找不到这两张图片。我有一堆其他图片在同一个文件夹中完美运行。我通过删除导致我错误的两张图片来控制这一点,并测试了应用程序的成功结果。

以下是整个错误消息:

(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.

(3)

Gradle sync failed: Could not find com.android.tools.build:gradle:23.0.0.
         Searched in the following locations:
         file:/Applications/Android Studio.app/Contents/gradle/m2repository/com/android/tools/build/gradle/23.0.0/gradle-23.0.0.pom
         file:/Applications/Android Studio.app/Contents/gradle/m2repository/com/android/tools/build/gradle/23.0.0/gradle-23.0.0.jar
         https://jcenter.bintray.com/com/android/tools/build/gradle/23.0.0/gradle-23.0.0.pom
         https://jcenter.bintray.com/com/android/tools/build/gradle/23.0.0/gradle-23.0.0.jar
         Required by:
         :v11:unspecified
         Consult IDE log for more details (Help | Show Log)

图片保存在一个数组中,这是数组:

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

两个不起作用的R.drawables是.thegodfather和.kingofcomedy。

我已经检查过资源确实存在,甚至删除并替换它们,没有任何运气。

我查看了堆栈以找到答案并发现了许多类似的问题,但是通过清理项目,无效并重新启动或重建甚至重新启动程序来解决这些问题。这些都不适合我。

这是我的gradle.build代码:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"


    defaultConfig {
        applicationId "com.exple.v1"
        minSdkVersion 15
        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 fileTree(dir: 'libs', include: ['*.jar'])

}

这是我的清单文件的开头,以防任何人需要查看它:

<?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="15"
        android:targetSdkVersion="23" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" 
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity

看了一下后,我想我找到了problem,但我不知道在哪里实施解决方案代码,如果你点击它就在链接中。它是上层还是下层的构建?

2 个答案:

答案 0 :(得分:0)

这是你的问题之一。我不知道它是否会解决其他问题。

Gradle sync failed: Could not find com.android.tools.build:gradle:23.0.0.

此版本不存在

检查您的顶级 build.gradle。您应该使用版本1.3.0而不是23.0.0。

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
    }
}

它是android的gradle插件,它与sdk无关。

答案 1 :(得分:0)

你的问题不是资源。问题是无法找到您的构建工具:

Gradle sync failed: Could not find com.android.tools.build:gradle:23.0.0.

无法找到生成资源文件所需的工具(包含所有资源ID),这意味着永远不会生成R类,因此Java编译器会抱怨找不到符号

您已经表明您拥有所有最新的Android SDK更新,但您确定Android Studio指向正确的Android SDK位置吗? 据推测,您使用的是Android SDK的一些实例 - 但Android Studio附带了自己的Android SDK实例,可能没有使用您认为的那个。

查看错误中的路径:

Searched in the following locations:
         file:/Applications/Android Studio.app/Contents/gradle/m2repository/com/android/tools/build/gradle/23.0.0/gradle-23.0.0.pom

您的计算机上是否存在此路径?它是安装Android SDK的地方吗?你能在那个位置找到23.0.1构建工具文件夹吗?如果没有,您可能需要解决此问题以解决您的问题 - this question可能会帮助您解决问题。