转自:http://blog.youkuaiyun.com/u012017115/article/details/43731533
最近在写一个个推推送的Demo 在官网提供的例子里面有个是通过Java代码推送消息给手机。
在官网的例子中使用了sun.misc.BASE64Encoder ,
我把这个例子在普通的Java文件试验了下没有问题,于是想集成到我的Android Demo 中试验一下,但是一运行 就报错了。
错误内容是 java.long.NoClassDefFoundError: sun.misc.BASE64Encoder
sun.misc.BASE64Encoder 是JDK里面的类 正常情况下是应该是不会找不到的啊!
然后在网上查了一下有很多种解决办法,一个个都试了一下,结果都没有成功····(你们可以去搜一下 说不定你的就能成功呢)
后来看到有个人说是因为Android的JDK里面没有 BASE64Encoder 这个类,我用的是JDK7 的 不知道有没有影响。
然后我就想到既然没有这个类 我可以找它的源码 把这几个Java文件 按照包路径放到对应位置(我的状况是封装Jar包里面调用了BASE64Encoder 这个类,所以包路径不能变,如果你是单纯自己调用,包就无所谓了) 运行一下成功了, 接下来把几个文件打包成Jar 试了一下 也是可行的
这里记录一下 以便自己回顾 也和大家分享,让大家多一种对这个问题的解决方法
下面是下载地址 (里面多了几个文件,具体干嘛用我也不太清楚 不过找源码的时候放在一起的 就一起打包了)
http://download.youkuaiyun.com/detail/u012017115/8439669