Eclipse JUNO + ADT 23.0.2资源$ NotFoundException

MD1*_*948 4 java eclipse android adt

在我最近安装了最新的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)
...
Run Code Online (Sandbox Code Playgroud)

在我的R文件中,我正在寻找的字符串与资源ID之间存在正确的连接.

我尝试了几件事来解决我的问题:

  • 清理所有项目
  • 将所有资源名称重命名为小写名称
  • 重启电脑

由于更新期间发生错误,我之前使用了"adt-bundle-windows-x86_64-20130522"(它编译时没有运行时错误)并下载了"adt-bundle-windows-x86_64-20140702".

有什么建议?

Ril*_*y C 6

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


我的简短回答:暂时使用旧版Android SDK Build-tools.在构建工具的版本21和21.0.1中的资产目录中包含某些类型的文件可能存在错误 - 或者至少这就是我在更新后收到错误消息的原因.

我的答案很长:

我今天上午用同样的问题度过了最好的一半.令人沮丧的是,我工作的项目中只有两个提出了它,但它至少给了我一个起点.我发现失败的项目在其资源文件夹中包含一个zip文件,而工作项目则没有.删除此zip文件允许所有应用程序运行,但这显然不是一个足够好的解决方案.

我将在这里进行讨论并假设最新的Android SDK Build-tools版本(版本21和21.0.1)中存在一个错误,如果资源文件夹中有zip文件,则无法正确构建APK具有某些属性(我没有足够的研究来确定确切的触发器).只是压缩一个空的文本文件不足以触发这个,但我用一个13KB的小文件管理.我不知道是否有任何其他类型的文件导致这种情况.

为了立即修复,我回过头来使用旧版本的构建工具.如此处所示,这涉及修改project.properties文件以包含sdk.buildtools=20(对于Eclipse用户)或build.gradle要包含buildToolsVersion "20"到该android部分的文件(对于Android Studio用户).版本20努力让我恢复速度,而版本21打破了我的应用程序.您可以在Android SDK管理器的"工具"下看到当前安装的Android SDK Build-tools版本列表.

  • 看起来AOSP问题跟踪器已经抓住了这个漏洞的风,所以我留下了评论并加星标.建议修复(替换android-sdk\build-tools\21.0.1中的`aapt.exe`)对我有用,无需进行任何其他修改.https://code.google.com/p/android/issues/detail?id=77813 (2认同)
  • 新的Build-tools版本21.0.2解决了这个问题!非常感谢! (2认同)