Android的Dalvik虚拟机的一个小BUG
今日看一练习题,想运行一下验证个结果
原题
- int i=2;
- i=i++;
- int j=i++;
- System.out.println(i+"===onTouchEvent==="+j);
比较简单,一看就是 i=3,j=2;
但在 Android的Dalvik虚拟机 上就不行
ECLIPSE没有报错
可是 编译的时候提示
[2009-08-11 14:56:44 - android_Links]
trouble writing output: shouldn't happen
[2009-08-11 14:56:44 - android_Links] Conversion to Dalvik format failed with error 2
这导致程序无法运行!
在 百度上搜索 Conversion to Dalvik format failed with error 出了好多结果
进去一看 就2,3种方法,
1.是clean...
2.是调整SDK,
(大家都是转贴的比较多,原创的比较少啊!)
经过多次调整,
clean... 无效,
查看SDK 模拟器 也都是1.5的,
(看来他们的错误和我的是不一样了!不过这些转贴,的也都只是原封不动的转了,估计也都没验证!)
搞来搞去,只好把我的程序逐步排查,
结果 果然是代码有问题,
因为上边的测试是我加到 我的游戏 连连看 里的
这个程序 以前运行都没问题
不过,看 那道题的代码也没问题,
结果 还真是 这几行代码有问题了!
经研究 发现
1.
- i=i++;
- int j=i++;
这2行同时出现 编译不通过,
2.
- i=i++;
- int j=++i;
这2行同时出现 编译可以通过,
3.
- i=i++;
- int j=++i + ++i;
这2行同时出现 编译不通过,
根据
Conversion to Dalvik format failed with error 2
这句话的提示意思,猜想是
编译成 Dalvik 虚拟机的 字节码文件格式出错了!
以前看资料知道 Dalvik 是自己的字节码格式,没想到 这种在JAVA上 常见的代码
却给 Dalvik 判了出错!
看来 Dalvik要走的路还很长啊!
其他 ++X, X++之类的我就不实验了!
反正 一般我们写程序的时候 不要用太多,复杂 的 ++连用 就OK啦!
还是写清楚 简单些的好!
本文转自 kome2000 51CTO博客,原文链接:http://blog.51cto.com/kome2000/578689

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
android控件动态使用
viewplaincopytoclipboardprint? packagecom.fetion.android; importandroid.app.Activity; importandroid.content.Context; importandroid.graphics.Color; importandroid.os.Bundle; importandroid.text.Layout; importandroid.text.format.DateFormat; importandroid.util.Log; importandroid.view.KeyEvent; importandroid.view.ViewGroup.LayoutParams; importandroid.widget.*; importjava.util.Calendar; /** *测试动态使用android控件 *@authorgaoleiby20090827 */ publicclassfetion2009extendsActivity { /**C...
-
下一篇
10个很棒的学习Android 开发的网站(转)
看到江湖旅人写的《10个很棒的学习iOS开发的网站 - 简书》,所以就忍不住写Android 啦,也希望对大家有帮助。 我推荐的网站,都是我在学习Android 开发过程中发现的好网站,给初学者一些建议,少走一些弯路。 Android Developers 作为一个Android 开发者,官网的资料当然不可错过,从设计,培训,指南,文档,都不应该错过,在以后的学习过程中慢慢理解体会。 Android Developer Android Guides - CodePath CodePath 是国外一个技术培训机构,主要培训iOS 和Android 开发,而CodePath 将Android Guides 放在Github,已经获得了4000+ 个赞,对于Android 初学这特别适合,而且浅显易懂。 CodePath Android tutorial - TutorialSpoint TutorialSpoint 是一个专业的技术教程网站,基本上我们所熟知的热门技术,都能在这里找到教程,知识点覆盖的特别全,而且代码风格也很不错,同时也适合初学着;更人性化的是,所有教程提供离线PDF 下载...
相关文章
文章评论
共有0条评论来说两句吧...