ANDROID:java.util.MissingResourceException:找不到包'org.eclipse.paho.client.mqttv3.internal.nls.logcat_en_US',key''的资源

问题描述 投票:0回答:1

在Stack Overflow中似乎有无数关于这个错误的报告。这些建议都没有奏效。在我的情况下,它几乎与此堆栈溢出报告SPRING相同

除了这种情况,Android是在Android Studio中构建的。它只发生在带有proguard的发布模式中。 Proguard以某种方式腐蚀它。是的,我在proguard中做了以下事情:

-keep class org.eclipse.paho.client.mqttv3.logging.JSR47Logger { *; }
-keep class org.eclipse.paho.** { *; }

我还解析了gradle下载的jar。我无法更新到1.2.1,因为这只适用于最新版本的Android ...根据开发人员的评论。如果我能得到1.1.0的源代码,也许我可以阻止它调用不存在的资源。

有人解决了这个问题,还是proguard / paho中的一个错误?

android-proguard paho
1个回答
-1
投票

查看发布版本(使用proguard)和调试版本(没有proguard)生成的apks,显示proguard正在获取属性的org.eclipse ....包名称,并将'org'更改为某些字母,如'c' 。 mqtt paho客户端正在使用完整的软件包名称查找属性文件,因此无论您在proguard中包含或排除什么,都无法找到它。我看了几个月前制作的apk(我没有对paho客户端或使用paho客户端的代码部分做任何事情......它工作正常,我没有必要改变它)。我在旧的版本apk中看到'org'应该存在。

所以问题在于进展。我所能做的就是前进了1.1.0的源文件,创建一个新的java项目模块,并在源代码中冗长地注释掉每个'log'和getLogger。这是一个暂时的,令人不快的修复,但它的工作原理。当proguard(R8)解决这个问题时,我可以回到原来的状态。

所以我想唯一真正的解决办法就是向R8提交一个bug。我没有做过。

© www.soinside.com 2019 - 2024. All rights reserved.