android.content.res.$NotFoundException:无法找到资源ID #



我正在尝试修复一个我已经使用多年的旧android应用程序(不是原来的开发人员)。我已经解决了所有其他问题(耶!纯粹的运气几乎),我遇到了这个问题,它似乎有一个问题获得ResourceEntryName?不幸的是,我不能弄清楚到底是什么错了,除了给出的行参考之外,它在哪里抛出错误,我也不是特别熟悉java/android dalvik,所以我可能在这个问题上超出我的深度。

我双重检查的许多明显的资源问题,我能找到具体的引用(演习等,旨在从地图数据的通知,并将它们显示在卵石看),并也尝试重新排序的顺序getID getresource和一些其他问题的订单事情被处决,由于应用程序解析数据,然后显示在通知看——没有实际的区别,根据加载的顺序,它们返回时出现了致命错误,所以我用备份文件把它们放回了原始版本。也试着注释掉这行,导致应用程序崩溃和致命错误,同样删除括号中的整数也是如此。另一个线程建议移动可绘制的基本文件夹,而不是版本特定的。Drawable-v23,但这也没有什么区别,也没有移动布局文件,以防有一个丢失/在另一个文件夹。

如果您能提供任何帮助/建议,我将不胜感激!我确实对类似的错误进行了搜索,原因似乎相当广泛,并且特定于应用程序,所以我认为最好还是问我自己的问题。我已经附上了抛出错误的LogCat(似乎在日志中经常重复,但似乎根本不影响功能?)和问题中的. small文件的代码。

提前感谢!:)

04-08 21:43:14.890 25573 27081 E corp.pebble.nav: No package ID ff found for ID 0xffffffff.
04-08 21:43:14.890 25573 27081 D NotificationHandler: getResources failed
04-08 21:43:14.890 25573 27081 D NotificationHandler: android.content.res.Resources$NotFoundException: Unable to find resource ID #0xffffffff
04-08 21:43:14.890 25573 27081 D NotificationHandler:   at android.content.res.ResourcesImpl.getResourceEntryName(ResourcesImpl.java:289)
04-08 21:43:14.890 25573 27081 D NotificationHandler:   at android.content.res.Resources.getResourceEntryName(Resources.java:2335)
04-08 21:43:14.890 25573 27081 D NotificationHandler:   at com.batescorp.pebble.nav.lib.NotificationHandler.a(SourceFile:259)
04-08 21:43:14.890 25573 27081 D NotificationHandler:   at com.batescorp.pebble.nav.lib.NotificationHandler.a(SourceFile:333)
04-08 21:43:14.890 25573 27081 D NotificationHandler:   at com.batescorp.pebble.nav.lib.NotificationHandler.a(SourceFile:333)
04-08 21:43:14.890 25573 27081 D NotificationHandler:   at com.batescorp.pebble.nav.lib.NotificationHandler.a(SourceFile:333)
04-08 21:43:14.890 25573 27081 D NotificationHandler:   at com.batescorp.pebble.nav.lib.NotificationHandler.a(SourceFile:27)
04-08 21:43:14.890 25573 27081 D NotificationHandler:   at com.batescorp.pebble.nav.lib.NotificationHandler$1.run(SourceFile:210)
04-08 21:43:14.890 25573 27081 D NotificationHandler:   at java.lang.Thread.run(Thread.java:1012)
# instance fields
.field private a:Ljava/lang/String;
.line 67
const-string v0, ""
iput-object v0, p0, Lcom/batescorp/pebble/nav/lib/NotificationHandler;->a:Ljava/lang/String;
.line 259
:try_start_1
invoke-virtual {p2}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v4
invoke-virtual {v1}, Landroid/view/View;->getId()I
move-result v5
invoke-virtual {v4, v5}, Landroid/content/res/Resources;->getResourceEntryName(I)Ljava/lang/String;
:try_end_1
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0
move-result-object v0
move-object v4, v0
.line 333
check-cast v1, Landroid/view/ViewGroup;
invoke-direct {p0, p1, p2, v1}, Lcom/batescorp/pebble/nav/lib/NotificationHandler;->a(Landroid/content/Context;Landroid/content/Context;Landroid/view/ViewGroup;)Ljava/lang/String;
goto/16 :goto_1

因此,参考Android开发者网站,我设法将getResourceEntryName元素更改为GetResourceName,然后查看LogCat -我假设之前的ResourceEntryNames更改为Android:id/EntryName,因为应用程序日志将如何将其全部附加在一起。

所以在这种情况下,看起来代码本身没有全局问题(其余部分似乎工作得很好),但它与它正在检索的特定元素没有ID有关,因此问题出现在日志中。

最新更新