昨天早上醒来,有人邮件我说,客户端报一个 错误 Uncaught Exception:java.lang.Error
我想,又是什么黑莓的问题吧,所以就草草的回复了这个事情,后来发现,报告的人挺多的,而且都是安装了新浪微博的最新的黑莓客户端导致的,这下紧张了,记得看《创业家》里面有一句话,”永远不要和(新浪)微博竞争“,这回不但竞争了,还TMD冲突了,这下玩完儿了。
火速解决这个问题!首先是在模拟器上测试,立刻发现是
import net.rim.device.api.i18n.ResourceBundle; ... public static ResourceBundle sm_local = ResourceBundle.getBundle(localResource.BUNDLE_ID, localResource.BUNDLE_NAME); public static final String[] fsm_apnListString = { sm_local.getString(yblocalResource.APN_LIST_NULL), sm_local.getString(yblocalResource.APN_LIST_CMNET) + " cmnet", sm_local.getString(yblocalResource.APN_LIST_UNINET) + " uninet", sm_local.getString(yblocalResource.APN_LIST_3GNET) + " 3gnet", sm_local.getString(yblocalResource.APN_LIST_CTNET) + " ctnet", };
其中运行到第一个就不行了,调试的时候直接代码中断到这一行,继续运行,就抛出所谓的 java.lang.Error 异常了。我第一感觉就是,和新浪客户端的ID重复了,只是一种感觉,没有依据,就找到 localResource.java 这个文件:
public interface localResource { // Hash of: "local.local". long BUNDLE_ID = 0xxxxxxxxxxxxxxxxL; String BUNDLE_NAME = "local.local"; ...
把这个值告诉了开发新浪微博黑莓客户端技术人员,因为我没有看到那个 // Hash of: “local.local”. 的提示,认为RIM会把把包的资源路径加入进来参与生成的,比如什么com.yuchting.yuchberry.client 等等字符串标示。
但是惊人的是,在新浪技术人员的查看下,发现咱两的ID是一致的,当时我就蒙了——怎么可能?后来想到的原因,很可能是他们新加入的模块的开发工程师和我看了同一套教程,都命名为 local.local 那么这个字符串的标示的hash不就一样了么?
于是吧local.local 换成了 local.yblocal 就OK了,大量的替换,svn的版本处理迎面扑来。
RIM 的RUNTIME 没有android context 的概念,完全都是JVM大环境下的操作,读取另一个已经注册的资源的不存在的符号,当然会over。不管怎么样,这个事情在我积极的更改、发布之后就告一段落了,虚惊一场,虽然最后在晚上10点发布完毕之后还出了点小插曲,总归于要结束了,可以好好睡一觉了……
第二天……
可是事情还没有完,早上起来,发现微博粉丝多了40个,下午到了60个,注册用户两天上升100多个,同步数稳步上升,好现象!很happy,准备把安卓版本的上传附件功能写完了。
随手打开GAE,靠!发送邮件的 quota 又到限制了,刚刚才把GAE的Billing关闭(不然每周$2.1,实在受不了),总不能让我又开开吧,昨天才研究了php怎么发送邮件,今天就要赶上自己写一个?为啥都在我刚刚研究的时候就出问题了呢?谁给我测试时间?
急急忙忙的吧php的发送邮件功能添加上,前两天才研究的BlueHost 邮件系统,开了一个邮件帐户 noreply@yuchs.com ,php发送邮件代码,立刻派上用场,直接上!
<?php if(!isset($_GET['to']) ){ echo "<H1>403 FORBIDDEN</H1> "; exit; } $to = $_GET['to']; if(!preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/', $to)){ echo '\'' . $_GET['to'] . '\' is not mail address form.'; exit; } $from = "noreply@yuchs.com"; $reply = "yuchberry@gmail.com"; $messageID = '<' . rand() . '-' . date("Y_m_d_H_i_s") . '@yuchs.com>'; $headers = 'MIME-Version: 1.0' . "\r\n". 'Content-type: text/plain; charset=utf-8' . "\r\n". 'From: '. $from . "\r\n". 'Reply-To: '. $reply . "\r\n". 'Message-Id: '. $messageID . "\r\n"; $subject = "=?UTF-8?B?".base64_encode("语盒官方服务提醒")."?="; $content = '你的语盒使用时间已经快到了,稍等一段时间后服务器会暂停服务。'."\r\n". '你可以登录官方网站 http://www.yuchs.com/ 进行时间的充值,继续使用,或者查看FAQ,进行自架服务器使用。' . "\r\n". '感谢你对语盒的关注和支持!' . "\r\n". "\r\n". '语盒开发者敬上!'; $result = mail($to, $subject, $content, $headers); if($result){ echo 'OK'; }else{ echo 'Failed'; } ?>
这段代码是不是要求在自己的web主机上开启一个邮件帐户,我现在还是不知道,反正我是在web主机上加了一个邮件帐户 noreply@yuchs.com ,总之能解决问题就行。乒乓五四又一天过去了,终于,帐户邮件又能发送了。
哎,一天的劳命哪~
其实这完全是由于blackberry的开发者少,开发文档更少,要学的东西太多,要学的人太多造成的.
大家都在边学边写.
我很喜欢这个软件,但有时候我忍不住要问,你这个软件要怎么装到手机上去????我搜索遍了整个网络,居然没有一遍是关于怎么装上手机的,真脑火,有时候忍不住想说TMD
额,我还真没有在下载的地方搞上安装的方法链接。
现在有了,在下载那里有个链接,安装和更新的步骤。其实我原本以为,安装客户端软件应该是通用的,和其他的软件一样安装,所以没有加上。