java.util.MissingResourceException-定位日志类(MQTT库)时出错
我正在编写一个使用MQTT的Android应用程序 在发布时生成时,我得到一个异常:java.util.MissingResourceException-定位日志类(MQTT库)时出错,java,android,mqtt,Java,Android,Mqtt,我正在编写一个使用MQTT的Android应用程序 在发布时生成时,我得到一个异常: MqttClient client = new MqttClient(host, clientId, new MemoryPersistence()); 在调试构建时,一切正常。 我使用的是mqtt-client-0.4.0.jar 我在发行版中得到的执行选项是: 如果我在build.gradle文件的release块中添加debugable true,我不会得到错误,应用程序也可以正常工作。但我不想要一个
MqttClient client = new MqttClient(host, clientId, new MemoryPersistence());
在调试构建时,一切正常。
我使用的是mqtt-client-0.4.0.jar
我在发行版中得到的执行选项是:
如果我在build.gradle文件的release块中添加debugable true
,我不会得到错误,应用程序也可以正常工作。但我不想要一个可调试的版本
您能帮助我吗?您可以在proguard-rules.pro文件中添加以下行:
-keep class org.eclipse.paho.clent.mqttv3.** {*;}
-keep class org.eclipse.paho.client.mqttv3.*$* { *; }
-keep class org.eclipse.paho.client.mqttv3.logging.JSR47Logger { *; }
您说只有在使用生产构建运行时才会发生这种情况。尝试确保Paho代码被排除在混淆之外。
public static Logger getLogger(String messageCatalogName, String loggerID) {
String loggerClassName = overrideloggerClassName;
Logger logger = null;
if (loggerClassName == null) {
loggerClassName = jsr47LoggerClassName;
}
logger = getLogger(loggerClassName,
ResourceBundle.getBundle(messageCatalogName), loggerID, null) ;
if (null == logger) {
throw new MissingResourceException("Error locating the
logging class", CLASS_NAME, loggerID);
}
return logger;
}
-keep class org.eclipse.paho.clent.mqttv3.** {*;}
-keep class org.eclipse.paho.client.mqttv3.*$* { *; }
-keep class org.eclipse.paho.client.mqttv3.logging.JSR47Logger { *; }