由于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用于获取额外信息 以防任何人需要查看它。
答案 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并检查特定于变体的文件夹。