Eclipse JUNO + ADT 23.0.2 资源未找到异常。

4

最近我安装了最新的Eclipse ADT软件包后,我在之前正在开发中的一个旧项目中遇到了一些错误:

No known package when getting value for resource number 0x7f080028
android.content.res.Resources$NotFoundException: String resource ID #0x7f080028
at android.content.res.Resources.getText(Resources.java:222)
at android.content.res.Resources.getString(Resources.java:275)
at android.content.Context.getString(Context.java:183)
...

在我的R文件中,我已经正确地连接了我正在寻找的字符串和资源ID。
我尝试了几种方法来解决我的问题:
- 清理所有项目 - 将所有资源名称重命名为小写名称 - 重新启动计算机
我之前使用的是“adt-bundle-windows-x86_64-20130522”(编译时没有运行时错误),因为在更新期间发生错误而下载了“adt-bundle-windows-x86_64-20140702”。
有什么建议吗?

同样的问题:http://stackoverflow.com/questions/26488866/android-no-known-package-when-getting-value-for-resource-number - MD1948
2个回答

6
编辑:看起来已经发布了一个新的构建工具版本(21.0.2),解决了这个问题!现在最好的解决方法是更新到此版本,而不是回退到旧版本或更换aapt.exe文件。


我的简短回答:现在使用旧版的Android SDK Build-tools。目前版本的构建工具中,在assets目录中包含某些类型的文件可能存在错误。至少在更新后我接收到了这些错误信息。

我的详细回答:

今天上午我就面临同样的问题。令人沮丧的是,我工作中的三个项目中只有两个出现了问题,但这给了我一个起点。我发现,失败的项目中包含了一个zip文件,而正常工作的项目没有。删除这个zip文件可以使所有应用程序运行,但这显然不是一个好的解决方案。

我要大胆猜测一下,最新的Android SDK Build-tools版本(修订版本21和21.0.1)存在一个错误,如果assets文件夹中有某些属性的zip文件,则无法正确地构建APK(我没有进行足够的研究以找出确切的触发器)。仅压缩一个空文本文件不足以触发此问题,但我成功使用了一个小的13KB的zip文件。我不知道是否有其他类型的文件会引起这种情况。

为了立即解决问题,我切换回使用旧版本的构建工具。如此所见,这需要修改project.properties文件以包含sdk.buildtools=20(对于Eclipse用户),或者将buildToolsVersion“20”添加到android部分的build.gradle文件中(对于Android Studio用户)。版本20可以使我的应用程序快速恢复,而版本21会破坏我的应用程序。您当前安装的Android SDK Build-tools版本列表可以在Android SDK管理器下的工具选项卡中查看。


我可以确认这个...整天都在一个项目上遇到同样的问题(Eclipse,更新了ADT等)。在assets文件夹中有一个.jar文件(第三方指令要求将其放在这里)。使用build tools 20时,它正常工作。但是使用build tools 21时,它失败了。将.jar文件移动到/libs目录下,使用build tools 21完美运行。 - Kyle
2
看起来AOSP问题跟踪器已经注意到了这个错误,所以我留下了评论并加星标。建议的修复方法(在android-sdk\build-tools\21.0.1中替换aapt.exe)对我而言有效,无需进行任何其他修改。https://code.google.com/p/android/issues/detail?id=77813 - Riley C
2
新的 Build-tools 版本 21.0.2 修复了这个问题!非常感谢! - MD1948
@MD1984 感谢您的确认,我已编辑我的帖子以体现新版本。 这速度真快! - Riley C

0

在过去的三个小时中,我一直面临着同样的问题,在Google和其他网站上搜索了很久之后,我得出了结论:这个错误(无法解析符号:R)特别发生在gradel工具版本21.0、21.0.1、21.0.2和21.1中。但是它已经在build-tools 21.1.1中得到解决。

对于Android IDE用户,以下步骤可以起作用。

1. 进入您项目的 Gradle Scripts 文件夹。 2. 选择build.gradle(app)文件夹(不是其他build.gradle("您的MainActivity类名"))。 3. 打开build.gradle(app)文件, 将buildToolsVersion从旧的版本更改为"21.1.1"。 4. 再次同步您的项目。 5. 完成。

这对我有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接