android中使用smack库时,遇到错误:java.lang.NullPointerException
来源:互联网 发布:java代码整洁之道 编辑:程序博客网 时间:2024/06/05 20:19
参考网站:
http://www.cnblogs.com/windy-love/p/3184304.html
http://stackoverflow.com/questions/5910219/getsearchform-returns-null-when-using-usersearch-in-xmpp-with-asmack
http://community.igniterealtime.org/message/201866#201866
http://blog.csdn.net/wangyi_lin/article/details/6953606
在jitsi-android中直接使用smack库中的类时,运行时会遇到java.lang.NullPointerException的错误。查阅上述网站后,猜测原因大概与之相同。
问题分析摘要:
国外网站解释,这对asmack是个全局存在的问题。原因就是通常在普通版本smack的META-INF目录下的smack.providers文件,在android中不能自动加载,因为jar包的打包方式。因此所以的providers都必须手动加载。
smack中:每个provider都会有一个静态函数,将自己注册到ProviderManager中。此注册通常是在class load时完成,但是在android中class load似乎没有正常工作,因此没有provider被注册到ProviderManager中
注意:
在Android中可以动态加载,但无法像Java中那样方便动态加载jar
原因:Android的虚拟机(Dalvik VM)是不认识Java打出jar的byte code,需要通过dx工具来优化转换成Dalvik byte code才行。
refer to:
http://www.cnblogs.com/developerY/archive/2013/04/18/3027997.html
http://blog.csdn.net/czh0766/article/details/6736826
http://www.cnblogs.com/franksunny/archive/2011/09/27/2193085.html
http://www.cnblogs.com/over140/archive/2011/11/23/2259367.html
- android中使用smack库时,遇到错误:java.lang.NullPointerException
- android编程中遇到的关于 java.lang.NullPointerException错误的原因及解决办法
- Android开发中遇到Java.lang.NullPointerException解决办法
- Android调试错误:java.lang.NullPointerException
- 【Android开发】关于错误 java.lang.NullPointerException
- Android中遇到java.lang.StackOverflowError错误
- java.lang.NullPointerException错误
- java.lang.NullPointerException错误
- 我在用ssm项目中遇到了java.lang.NullPointerException错误
- java.lang.NullPointerException错误!!遇到过很多次..
- android 中碰到:java.lang.NullPointerException状况
- android 中碰到:java.lang.NullPointerException状况
- Android 开发中出现java.lang.NullPointerException
- Android(java.lang.NullPointerException)
- android java.lang.NullPointerException
- 在使用DataBinding中遇到的一个奇葩的 java.lang.NullPointerException问题
- 使用Eclipse开发Android出现java.lang.NullPointerException错误的解决方法
- 解决android集成环境ADT的java.lang.NullPointerException错误
- 兼容IE和FF的换行CSS推荐样式
- Java加密技术(九)——初探SSL
- 项目管理工具 redmine
- java socket参数详解:KeepAlive
- Java加密技术(十)——单向认证
- android中使用smack库时,遇到错误:java.lang.NullPointerException
- 【Effective Java】Ch4_Class:Item15_使可变性最小化
- 配置android开发环境to mac
- List拷贝另一个List的数据
- 获取新插入Oracle数据库Sequence值的5种方法
- 用源码安装mysql5.5到ubuntu13.04
- Powershell获取当前路径
- Citrix Troubleshooting methodology
- Cadence_SPB16.5详细安装说明