??xml version="1.0" encoding="utf-8" standalone="yes"?>91精品国产综合久久久久久久久久,99在线精品视频在线观看,日本在线一区二区三区http://www.aygfsteel.com/yxj1314520/zh-cnWed, 18 Jun 2025 02:43:12 GMTWed, 18 Jun 2025 02:43:12 GMT60SSH 昄中文q http://www.aygfsteel.com/yxj1314520/archive/2013/09/12/404000.html姚先q?/dc:creator>姚先q?/author>Thu, 12 Sep 2013 09:23:00 GMThttp://www.aygfsteel.com/yxj1314520/archive/2013/09/12/404000.htmlhttp://www.aygfsteel.com/yxj1314520/comments/404000.htmlhttp://www.aygfsteel.com/yxj1314520/archive/2013/09/12/404000.html#Feedback0http://www.aygfsteel.com/yxj1314520/comments/commentRss/404000.htmlhttp://www.aygfsteel.com/yxj1314520/services/trackbacks/404000.html试了N多方法,貌似在终端执行命令:
export LC_ALL=zh_CN.GB2312;export LANG=zh_CN.GB2312是最有效的?br /> =======================
1.不管用那Ussh客户端,字体讑֮一定要设ؓ可以昄中文的字体?br />
2.q程的locale一定要讄为LANG=zh_CN.UTF-8

========================================
修改/etc/profile

增加q一?br /> export LC_ALL=zh_CN.GBK

========================================

SSH昄中文q问题
(1) 打开/etc/sysconfig/i18n
讄为:
LANG="zh_CN.GB2312"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN.GB2312:zh_CN.UTF-8:zh:en_US.UTF-8:en_US:en:ja_JP.UTF-8:ja_JP:ja"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"

其中LANG="zh_CN.GB2312" 是必ȝ(如果你不惌中文q的话!!!)
其它的可以按照自已的需求来改变?br /> (2) 打开smb.conf
dQ?br />
   display charset=cp936
    unix charset=cp936
    doc  charset=cp936
========================

]]>
MyBatis collection的两UŞ式——MyBatis学习W记之九 http://www.aygfsteel.com/yxj1314520/archive/2013/09/11/403951.html姚先q?/dc:creator>姚先q?/author>Wed, 11 Sep 2013 05:44:00 GMThttp://www.aygfsteel.com/yxj1314520/archive/2013/09/11/403951.htmlhttp://www.aygfsteel.com/yxj1314520/comments/403951.htmlhttp://www.aygfsteel.com/yxj1314520/archive/2013/09/11/403951.html#Feedback0http://www.aygfsteel.com/yxj1314520/comments/commentRss/403951.htmlhttp://www.aygfsteel.com/yxj1314520/services/trackbacks/403951.html 与association一Pcollection元素也有两种形式Q现介绍如下Q?div>一、嵌套的resultMap

      实际上以前的CZ使用的就是这U方法,今天介绍它的另一U写法。还是以教师映射ZQ修Ҏ文件TeacherMapper.xml如下Q?a target="_blank">点击此处q入嵌套resultMap形式的示例源码下载页?/a>。注Q本CZ代码是在修改本系列的上篇博文CZ代码的基上完成的Q用CMapperScannerConfigurer和注解等知识。对q些知识不熟悉的读者,可参考上博文:http://legend2011.blog.51cto.com/3018495/980150Q:

  1. <?xmlversion="1.0"encoding="utf8"?>

  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

  3. <!--与以前一Pnamespace的值是对应的映器接口的完整名U?->

  4. <mappernamespace="com.abc.mapper.TeacherMapper">

  5.          <!--TeacherMapper接口中getByIdҎ对应的SQL语句?nbsp; 

  6.          查询教师及其指导的学生的信息。由于教师、学生都?nbsp; 

  7.          id、name、gender{属性,因此l教师的字段都v了别?->

  8. <selectid="getById"parameterType="int"resultMap="supervisorResultMap">

  9.           select t.id t_id, t.name t_name, t.gender t_gender,  

  10.           t.research_area t_research_area, t.title t_title,  

  11.           s.id,s.name, s.gender,s.major,s.grade  

  12.           from teacher t,student s where t.id=#{id}  

  13.           and s.supervisor_id = t.id  

  14. </select>

  15. <!--教师实体映射-->

  16. <resultMapid="supervisorResultMap"type="Teacher">

  17. <idproperty="id"column="t_id"/>

  18. <resultproperty="name"column="t_name"/>

  19. <resultproperty="gender"column="t_gender"/>

  20. <resultproperty="researchArea"column="t_research_area"/>

  21. <resultproperty="title"column="t_title"/>

  22.             <!--需要注意的是,上面的select语句中学生的字段?别名应与  

  23.             下面的column属性一致。ofType指collection包含的元素的cdQ?nbsp; 

  24.             此属性不可少-->

  25. <collectionproperty="supStudents"ofType="Student">

  26. <idproperty="id"column="id"/>

  27. <resultproperty="name"column="name"/>

  28. <resultproperty="gender"column="gender"/>

  29. <resultproperty="major"column="major"/>

  30. <resultproperty="grade"column="grade"/>

  31.                <!--映射学生的指导教师属性,用到?nbsp; 

  32.                supervisorResultMap本n-->

  33. <associationproperty="supervisor"

  34. resultMap="supervisorResultMap"/>

  35. </collection>

  36. </resultMap>

  37. </mapper>

      q行E序l果如下Q?nbsp;

       与以前的写法相比Q这U写法的~点是学生实体映被嵌入到教师实体映中Q因此学生实体映不能被重用?/p>

二、嵌套的select语句

      q种方式是用一条单独的select语句来加载关联的实体Q在本例中就是学生实体)Q然后在collection元素中引用此select语句Q注Q此Ҏ会生N+1问题Q关于这个问题可参考本pd博客中的“MyBatis中的N+1问题”Q。首先修改TeacherMapper.xml如下Q?a target="_blank">点击此处q入嵌套select语句形式CZ源码下蝲面Q:

  1. <?xmlversion="1.0"encoding="utf8"?>

  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

  3. <!--与以前一Pnamespace的值是对应的映器接口的完整名U?->

  4. <mappernamespace="com.abc.mapper.TeacherMapper">

  5.          <!--TeacherMapper接口中getByIdҎ对应的SQL语句?nbsp; 

  6.          查询教师的信息?->

  7. <selectid="getById"parameterType="int"resultMap="supervisorResultMap">

  8.           select * from teacher where id=#{id}  

  9. </select>

  10. <!--教师实体映射-->

  11. <resultMapid="supervisorResultMap"type="Teacher">

  12. <idproperty="id"column="id"/>

  13. <resultproperty="name"column="name"/>

  14. <resultproperty="gender"column="gender"/>

  15. <resultproperty="researchArea"column="research_area"/>

  16. <resultproperty="title"column="title"/>

  17.             <!--ofType指collection包含的元素的cdQ此属性不可少?nbsp; 

  18.             column属性指把上q的getById的select语句中的教师id列的g为参?nbsp; 

  19.             传递给要引用到的下述的getStudents的select语句Q此属性不可少?nbsp; 

  20.             引用的Ş式ؓQ命名空?select语句id-->

  21. <collectionproperty="supStudents"column="id"ofType="Student"

  22. select="com.abc.mapper.StudentMapper.getStudents"/>

  23. </resultMap>

  24. </mapper>

       在这里把Ҏ指导教师id查询学生信息的SQL语句写在StudentMapper.xml中,q引用其中的学生实体映射studentResultMap。修改StudentMapper.xml如下Q?/p>

  1. <?xmlversion="1.0"encoding="utf8"?>

  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

  3. <mappernamespace="com.abc.mapper.StudentMapper">

  4. <resultMapid="studentResultMap"type="Student">

  5. <idproperty="id"column="id"/>

  6. <resultproperty="name"column="name"/>

  7. <resultproperty="gender"column="gender"/>

  8. <resultproperty="major"column="major"/>

  9. <resultproperty="grade"column="grade"/>

  10.           <!--在这里引用supervisorResultMap和getByIdQ亦采用  

  11.           命名I间?相关元素id的Ş式。column="supervisor_id"

  12.           属性不可少-->

  13. <associationproperty="supervisor"

  14. resultMap="com.abc.mapper.TeacherMapper.supervisorResultMap"

  15. select="com.abc.mapper.TeacherMapper.getById"column="supervisor_id"/>

  16. </resultMap>

  17. <!--Ҏ指导教师id查询学生信息-->

  18. <selectid="getStudents"parameterType="int"

  19. resultMap="studentResultMap">

  20.             select * from student where supervisor_id = #{id}  

  21. </select>

  22. </mapper>

      执行l果如下Q?/p>



]]>
SQLQ不存在则insert存在则update http://www.aygfsteel.com/yxj1314520/archive/2013/09/10/403915.html姚先q?/dc:creator>姚先q?/author>Tue, 10 Sep 2013 10:56:00 GMThttp://www.aygfsteel.com/yxj1314520/archive/2013/09/10/403915.htmlhttp://www.aygfsteel.com/yxj1314520/comments/403915.htmlhttp://www.aygfsteel.com/yxj1314520/archive/2013/09/10/403915.html#Feedback0http://www.aygfsteel.com/yxj1314520/comments/commentRss/403915.htmlhttp://www.aygfsteel.com/yxj1314520/services/trackbacks/403915.html

最q在工作中遇C一个需?/p>

在执行数据库操作旉要先判断指定的数据是否存在,如果不存在则插入Q存在则更新

最开始用的是三条SQL语句Q?/p>

  1. SELECT bl_count,bl_src,bl_date,bl_topic FROM temp_table WHERE bl_topic=? AND bl_src=? AND bl_date=?;  
  2.   
  3. UPDATE temp_table SET bl_count=? WHERE bl_topic=? AND bl_src=? AND bl_date=?;  
  4.   
  5. INSERT INTO temp_table (bl_src,bl_date,bl_count,bl_topic) values(?,?,?,?)  
逻辑是:
  1. if(SELECT!= null){  
  2.     UPDATE  
  3. }else{  
  4.     INSERT  
  5. }  

后来leader提示q有新的ҎQ一条SQL语句p搞定Q?/p>

  1. INSERT INTO temp_table(bl_src,bl_date,bl_count,bl_topic) VALUES(?,?,?,?) ON DUPLICATE KEY UPDATE bl_count=bl_count+?;  

但是有个前提是Q什么时候会执行update语句Q在SQL语句中ƈ没有条g?

后来在网上看到的Q?span style="color:#ff0000">执行update语句的条件是insert语句的执行会造成唯一键的重复?/span>

所以,在创的时候还要加上唯一键的U束Q?/p>

  1. ALTER TABLE temp_table ADD CONSTRAINT c_topic_src_date UNIQUE(bl_topic,bl_src,bl_date);  

q样p辑ֈ目的?/p>

]]>
JSP:include的flush属性的作用 http://www.aygfsteel.com/yxj1314520/archive/2013/07/29/402131.html姚先q?/dc:creator>姚先q?/author>Mon, 29 Jul 2013 12:54:00 GMThttp://www.aygfsteel.com/yxj1314520/archive/2013/07/29/402131.htmlhttp://www.aygfsteel.com/yxj1314520/comments/402131.htmlhttp://www.aygfsteel.com/yxj1314520/archive/2013/07/29/402131.html#Feedback1http://www.aygfsteel.com/yxj1314520/comments/commentRss/402131.htmlhttp://www.aygfsteel.com/yxj1314520/services/trackbacks/402131.html

JSP:include的flush属性的作用

分类Q? 其他 2012-04-06 10:51 2572人阅?/span> 评论(2) 收藏 举报
JSP ?span style="background-color:#99ff99; color:black">include 另一个文件时有个很偏的属性,?span style="background-color:#ff9999; color:black">flushQ默认ؓ false?/span>

在同一? JSP 中,如果不断 include 自己Q源文gQ,在逻辑上会形成d@环。若默认情况下,服务器会{待该文件被d底端Q然后才输出到客LQƈ且销毁该ơ访问的 request ?response。而当?span style="background-color:#ff9999; color:black">flush 属性赋为真值时Q在~存累积了一定数据时Q服务器会先提供一部分数据l浏览器Qƈ{待后箋内容?/span>

由此可以得出l论Q在单页面中Q该属性不U_考虑Q而在面包含大量数据Ӟ为羃短客L延迟Q可一部分内容先行输出。该属性在 Servlet 中也有对应的应用?/span>


]]>
android 开发问题集?/title><link>http://www.aygfsteel.com/yxj1314520/archive/2013/05/17/399423.html</link><dc:creator>姚先q?/dc:creator><author>姚先q?/author><pubDate>Fri, 17 May 2013 08:57:00 GMT</pubDate><guid>http://www.aygfsteel.com/yxj1314520/archive/2013/05/17/399423.html</guid><wfw:comment>http://www.aygfsteel.com/yxj1314520/comments/399423.html</wfw:comment><comments>http://www.aygfsteel.com/yxj1314520/archive/2013/05/17/399423.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/yxj1314520/comments/commentRss/399423.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/yxj1314520/services/trackbacks/399423.html</trackback:ping><description><![CDATA[<div><div> <p> <strong>大家都在为项目开发成功而喜悦,但可不知成功的\上是会经常出错的Q下面是我碰到的一些错误集合!</strong></p> <p>【错误信息?/p> <p>01-16 17:16:18.945: I/magh(979): org.apache.http.conn.HttpHostConnectException: Connection to http://127.0.0.1:8080 refused </p><p>在android模拟器连接本问web时报q错Q把127.0.0.1Ҏlocalhost也是一L</p> 原因Q?br />  在向本机发送HTTPhӞ有一点必L意,是在android <a target="_blank">虚拟?/a>中,<span style="color: #ff0000; ">127.0.0.1</span>为android 虚拟机的IP地址Q如果要讉K本机QIP地址应该改ؓ<span style="color: #ff0000; ">10.0.2.2</span>。否则肯定会D讉K不成功!<br /> ==========================================================================<br /> 【错误信息?br /> [2011-01-19 16:39:10 - ApiDemos] WARNING: Application does not specify an API level requirement!<br /> [2011-01-19 16:39:10 - ApiDemos] Device API version is 8 (Android 2.2)<br /> 原因Q?br /> 不媄响正常运行。在AndroidManifest.xml文g中没有加API的版本号Q在<manifest> </manifest> 之间?lt;uses-sdk android:minSdkVersion="3"></uses-sdk><br /> [2011-01-19 16:55:04 - ApiDemos] Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE<br /> [2011-01-19 16:55:04 - ApiDemos] Please check logcat output for more details.<br /> [2011-01-19 16:55:05 - ApiDemos] Launch canceled!<br /> 该设备没有够的存储I间来安装应用程序,<br /> <br /> <br /> 【错误信息?br /> [2011-02-18 11:46:53] Failed to push selection: Is a directory<br /> 原因Q?br /> 原先目录已经有pkg_3.apk的文件夹Q再copy一个pkg_3.apk安装文g时出现问题,解决办法Q先删除掉pkg_3.apk的文件夹<br /> [2011-03-04 09:25:12 - ActivityMain]: Dx<br /> UNEXPECTED TOP-LEVEL EXCEPTION:<br /> java.lang.IllegalArgumentException: already added: Lorg1/apache/commons/codec/net/RFC1522Codec;<br /> [2011-03-04 09:25:12 - ActivityMain]: Dx at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)<br /> [2011-03-04 09:25:12 - ActivityMain]: Dx at com.android.dx.dex.file.DexFile.add(DexFile.java:143)<br /> .....<br /> [2011-03-04 09:25:12 - ActivityMain]: Dx1 error; aborting<br /> [2011-03-04 09:25:12 - ActivityMain] Conversion to Dalvik format failed with error 1<br /> 原因Q?br /> <br /> <br /> 【错误信息?br /> 启动Eclipse时出玎ͼ<br /> this android sdk requires android developer toolkit version 10.0.0 or above.<br /> current version is 8.0.1.v201012062107-82219.<br /> please update adt to the latest version<br /> <img id="aimg_UF29F" alt="" _load="1" src="http://www.51laifu.cn/upload/2012/07/04/20120704155743140.gif" border="0" /><br /> 原因Q?br /> Eclipse的android开发插件版本过低,应该下蝲ADT-10.0.0Qƈ?br /> 1. 启动 Eclipse, 然后q入 Help > Install New Software.<br /> 2. ?Available Software 对话框里Q点?Add....<br /> <br /> <br /> 【错误信息?br /> [2011-03-09 15:21:34 - Info] Failed to install Info.apk on device '?': Unable to open sync connection!<br /> [2011-03-09 15:21:34 - Info] java.io.IOException: Unable to open sync connection!<br /> [2011-03-09 15:21:34 - Info] Launch canceled!<br /> 原因Q?br /> 关闭模拟器和eclipseQ执行adb kill-server命oQ然后重试一?br /> <br /> <br /> 【错误信息?br /> 调用Webservice时出?br /> java.net.SocketException: Permission denied (maybe missing INTERNET permission)<br /> 原因:<br /> 需要访问到|络Q所以,在AndroidManifest.xml中,需要进行如下配|: <br /> <uses-permission android:name="android.permission.INTERNET" /><br /> <br /> <br /> 【错误信息?br /> org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <{http://schemas.xmlsoap.org/wsdl/}wsdl:definitions targetNamespace='http://bo.webservice.nqbx.nq.com'>@2:603 injava.io.InputStreamReader@44a3a7b0)<br /> 原因有可能是以下2个之一:<br /> 1QWebservice服务器的Soap版本?.0Q所以客L指定<br /> SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);<br /> VER11改ؓVER10<br /> 2QString serviceUrl = "http://200.200.200.11:10000/nqbx/service/InqBxWebService?wsdl";<br /> Url指的是你的webservice的地址.一般都是以***.wsdl或?**.?wsdll束?..但是.需要注意的?.要去掉后面的.wsdl或??wsdl<br /> <br /> <br /> 【错误信息?br /> 在新的线E中 public class HttpThread extends Thread {...}<br /> 增加一个弹出窗体:<br /> new AlertDialog.Builder(this).setTitle("数据加蝲p|").setMessage("h查网l连接情?)           .setPositiveButton("OK", new DialogInterface.OnClickListener(){            public void onClick(DialogInterface dialoginterface, int i)            {            }            }).show();     <br />   原因及解军_法:<br /> //不能在线E中操作UI界面<br /> java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()<br /> <br /> 修改后:<br /> new AlertDialog.Builder(com.nantsing.infoquery.chuanbo_detail.this).setTitle(" 数据加蝲p|").setMessage("h查网l连接情?)           .setPositiveButton("OK", new DialogInterface.OnClickListener(){            public void onClick(DialogInterface dialoginterface, int i)            {            }<br /> <br /> <br /> 【错误信息?br /> The constructor AlertDialog.Builder(chuanbo_detail.HttpThread) is undefined <br /> 原因及解军_法:<br /> 在UIȝE之外是无法对UIlgq行控制的。因Z必须在新U程d完成之后利用各种Ҏ先UIȝE发送消息通知d完成从而来昄各种提示消息?br /> U程间通信Ҏ有多U,常用的是用handler来传递消息?br /> 如下Q?br /> U程中构造消息:<br /> //构造消息Message message = handle.obtainMessage();Bundle b = new Bundle();b.putString("tag", "1");message.setData(b);handle.sendMessage(message); <br /> 另外自定义消息:<br />         /** * 捕获消息队列 fubin.pan 2011-04-02 */Handler handler = new Handler() {public void handleMessage(Message m) {if (!m.getData().getString("tag").equals("1")){                            ...}else{new AlertDialog.Builder(chuanbo_detail.this).setTitle("数据加蝲p|").setMessage(" h查网l连接情况!")                .setPositiveButton("OK", new DialogInterface.OnClickListener(){                        public void onClick(DialogInterface dialoginterface, int i)                        {                        }          }).show();}}};<br /> <br /> <br /> 【错误信息?<br /> android低版本工E(?.5Q放到高版本环境中(?.2Q可能会上述错误Q解x法如下:<br /> 1?如果不修改android sdk版本Q则使用project clean 命o作用于某工程卛_?br />        Q该处理方式只是在高版本中兼容了低版本工E,未真正意义上的升U)<br /> 2?如果修改android sdk版本Q则需要以下几个步骤:<br />        1Q修改SDK<br />              选择工程Qbuild path --> configure build path ---> library 删除引用的低版本SDKQ?br />              然后add External JARs,选择高版本SDK,OK,保存<br />         2Q修改classpath文g <br />              该文件可能存在该? <classpathentry kind="lib"   path ="你所指定的高版本的地址"<br />              把她修改?lt;classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK" /><br />         3) 修改AndroidManifest.xml<br />              在AndroidManifest.xml文g中,application标签后添?lt;uses-sdk android:minSdkVersion="3"></uses-sdk><br />         4) 修改default.propertiesQ很重要Q?br />               该文件最后一行(前面没用#的)target=android-3 该成target=android-8Q保存?br />         再看看你的工E和新徏的android 2.2的工E结构就一样了?br /> <br /> <br /> 【错误信息?br /> 在线EdebugQ运行没有问题)时调用Webservice时出玎ͼ<br /> 'JDI thread evaluations' has encountered a problem<br /> Exception processing async thread queue<br /> <img id="aimg_l1Zol" alt="" _load="1" src="http://www.51laifu.cn/upload/2012/07/04/20120704155743250.gif" border="0" /><br /> <br /> Exception processing async thread queue<br /> JDI thread evaluations<br /> <img id="aimg_fditM" alt="" _load="1" src="http://www.51laifu.cn/upload/2012/07/04/20120704155743343.gif" border="0" /><br /> <br /> 原因及解军_法:<br /> 与运行无关的错误Q关?expressions'视图可以了<br /> <br /> <br /> 【错误信息?br /> 打开开源项目JavaEye Android client时出?br /> http://javaeye-android-client.googlecode.com/svn/trunk/<br /> q是 JavaEye |站Z Android q_的客L软gQ可用以阅读动静、帖子、闲? 收躲, RSS {功用?br /> <br /> [2011-04-19 10:55:11 - JavaEye Android Client] Project has no default.properties file! Edit the project properties to set one.<br /> <br /> <br /> 原因及解军_法:<br /> 遇到q种情况Q可以创Z个default.properties文gQ如果创Z后还是有错误Q那么deleteq个projectQ重新import?br /> ~辑default.properties 之后Q一般会自动创徏 gen 目录Q?如果没有Q也可尝试手工创建?br /> <br /> ✿Adroid Adapter ADB Interface 严重错误<br /> 今天在配|完Eclipse和Android SDK开发环境之后,想用华ؓC8500手机通过USBq接电脑Qƈ在手Z去调试,但莫名其妙出现Adroid Adapter ADB Interface 安装严重错误Q在豌豆荚手机精灵安装驱动的时候,也出现这个错误,后面也莫名奇妙的多装几次好了,q没扑ֈ什么原因?br /> <br /> <br /> 【错误信息?br /> 用手试运行出玎ͼ<br /> ActivityManager: Warning: Activity not started, its current task has been brought to the front<br /> 原因及解军_法:<br /> 该手机已l启动了相同名字的应用,关闭之后再试Q?br /> <br /> <br /> 【错误信息?br /> 最q(2012-04-05Q在打开SDK Manager.exeQ更新SDKӞ会出现如下错误:<br /> <img id="aimg_AYe36" alt="" _load="1" src="http://www.51laifu.cn/upload/2012/07/04/20120704155743421.jpg" border="0" width="650" /><br /> Failed to fetch URL https://dl-ssl.google.com/android/repository/repository.xml, <br /> reason: Connection timed out: connect<br /> 原因及解军_法:<br /> dl-ssl.google.com在大陆封掉了<br /> 解决Ҏ是修改<strong>C:\Windows\System32\drivers\etc\hosts</strong>文g。添加一行:<br /> 74.125.237.1       dl-ssl.google.com <br /> 保存Q重新启动SDK Manager.exe<br /> <br /> <br /> 【错误信息?br /> [2012-04-08 17:42:24 - JavaEye Android Client] ------------------------------<br /> [2012-04-08 17:42:24 - JavaEye Android Client] Android Launch!<br /> [2012-04-08 17:42:24 - JavaEye Android Client] The connection to adb is down, and a severe error has occured.<br /> [2012-04-08 17:42:24 - JavaEye Android Client] You must restart adb and Eclipse.<br /> [2012-04-08 17:42:24 - JavaEye Android Client] Please ensure that adb is correctly located at 'C:\android\android-sdk-windows\platform-tools\adb.exe' and can be executed.<br /> 原因及解军_法:<br /> 查看d理器,关闭所有adb.exe<br /> 重启eclipse卛_<br /> <br /> <br /> 【错误信息?br /> 更新SDK旉误信息:<br /> Site Authentication<br /> Please login to the following ......<br /> <img id="aimg_iJOFy" alt="" _load="1" src="http://www.51laifu.cn/upload/2012/07/04/20120704155743546.jpg" border="0" width="650" /><br /> 原因及解军_法:<br /> Cancel跌提示<br /> <br /> <br /> 【错误信息?br /> 打开Eclipse 提示安装ADT 17<br /> <img id="aimg_CCkAu" alt="" _load="1" src="http://www.51laifu.cn/upload/2012/07/04/20120704155743890.jpg" border="0" /><br /> 原因及解军_法:<br /> 最新的Android SDK只能安装ADT 17.0.0<br /> 可用的下载地址Qhttp://download.csdn.net/detail/merrido/4169460Q?br /> q里可不能用常规Ҏ安装q个 ADT 17.0.0.zip 文gQ?首先得解压这个文Ӟ里面的文g夹覆盖掉Eclipse安装目录下的文g夏V?br /> 然后再用Help-> install new software->Add -> Name: ADT   Archive:选择ADT 17.0.0.zip <br /> <br /> <br /> 【错误信息?br /> 安装ADT 17.0.0Ӟ提示Q?br /> Your original request has been modified.<br />   "Android DDMS" is already installed, so an update will be performed instead.<br />   "Android Development Tools" is already installed, so an update will be performed instead.<br />   "Android Hierarchy Viewer" is already installed, so an update will be performed instead.<br />   "Android Traceview" is already installed, so an update will be performed instead.<br /> Cannot complete the install because one or more required items could not be found.<br />   Software being installed: Android Development Tools 17.0.0.v201203161636-291853 (com.android.ide.eclipse.adt.feature.group 17.0.0.v201203161636-291853)<br />   Missing requirement: Android Development Tools 17.0.0.v201203161636-291853 (com.android.ide.eclipse.adt.feature.group 17.0.0.v201203161636-291853) requires 'org.eclipse.core.runtime 3.6.0' but it could not be found<br /> 原因及解军_法:<br /> <br /> <br /> 【错误信息?br /> Updates ADT 17.0.0时提C:<br /> Cannot complete the install because one or more required items could not be found.<br />   Software being installed: Android Development Tools 17.0.0.v201203161636-291853 (com.android.ide.eclipse.adt.feature.group 17.0.0.v201203161636-291853)<br />   Missing requirement: Android Development Tools 17.0.0.v201203161636-291853 (com.android.ide.eclipse.adt.feature.group 17.0.0.v201203161636-291853) requires 'org.eclipse.core.runtime 3.6.0' but it could not be found<br /> 原因及解军_法:<br /> requires 'org.eclipse.core.runtime 3.6.0' but it could not be found<br /> requires 'org.eclipse.ui 3.6.0' but it could not be found<br /> eclipse需要升U到3.6.0Q我的版本是3.5.2<br /> <br /> <br /> 【错误信息?br /> [2012-04-09 17:14:49 - Info] ------------------------------<br /> [2012-04-09 17:14:49 - Info] Android Launch!<br /> [2012-04-09 17:14:49 - Info] Connection with adb was interrupted.<br /> [2012-04-09 17:14:49 - Info] 0 attempts have been made to reconnect.<br /> [2012-04-09 17:14:49 - Info] You may want to manually restart adb from the Devices view.<br /> 原因及解军_法:<br /> 重新启动eclipse<br /> <br /> <br /> 【错误信息?br /> [2012-04-10 09:45:49 - adb] ADB server didn't ACK<br /> [2012-04-10 09:45:49 - adb] * failed to start daemon *<br /> 原因及解军_法:<br /> 查看d理?关闭所有adb.exe <br /> 重启eclipse<br /> <br /> <br /> 【错误信息?br /> [2012-04-10 09:53:50 - ApiDemos] ------------------------------<br /> [2012-04-10 09:53:50 - ApiDemos] Android Launch!<br /> [2012-04-10 09:53:50 - ApiDemos] The connection to adb is down, and a severe error has occured.<br /> [2012-04-10 09:53:50 - ApiDemos] You must restart adb and Eclipse.<br /> [2012-04-10 09:53:50 - ApiDemos] Please ensure that adb is correctly located at 'C:\android\android-sdk-windows\platform-tools\adb.exe' and can be executed.<br /> 原因及解军_法:<br /> 重启eclipse<br /> <br /> <br /> 【错误信息?br /> 安装android sdkӞ<br /> -= warning! =- A folder failed to be renamed or moved. On Windows this typically means that a program Is using that Folder (for example Windows Explorer or your anti-virus software.) Please momentarily deactivate your anti-virus software. Please also close any running programs that may be accessing the directory 'C:\android\android-sdk-windows/android-sdk-windows/too!s'. When ready, press YES to try again.<br /> <img id="aimg_CQRRb" alt="" _load="1" src="http://www.51laifu.cn/upload/2012/07/04/20120704155744000.jpg" border="0" width="650" /><br /> 原因及解军_法:<br /> 1, 复制 tools目录<br /> Z个新的目?tools-copy ,此时在android-sdk-windows 目录下有两个目录 tools ? tools-copy<br /> 2, 在tools-copy目录以管理员w䆾q行 android.bat Q这样就可以正常 update all ?br /> 3.重新q行SDK Manager.exe.问题解决Q?br /> <br /> <br /> 【错误信息?br /> “正在启动JavaEyeApiAccessor“遇到问题?br /> 不能q接至VM<br /> <img id="aimg_PfXql" alt="" _load="1" src="http://www.51laifu.cn/upload/2012/07/04/20120704155744156.jpg" border="0" /><br /> 原因及解军_法:<br /> q接不到手机虚拟?br /> 重启拔插手机q接U?br /> <br /> <br /> 【错误信息?br /> 调试的时候:<br /> [2012-04-13 17:46:27 - IpsosAutoAndroid] Failed to install IpsosAutoAndroid.apk on device '?': timeout<br /> [2012-04-13 17:46:27 - IpsosAutoAndroid] Launch canceled!<br /> 原因及解军_法:<br /> q接真机调试的时候如果连接太久没响应׃出现timeout<br /> 1.在window-》prensent....-》android-》设|ddms的timeout旉。这U是最有效、最z的?br /> 2.delete android里面?apkQ保证速度。不q试q一ơ后Q真机好像变“聪明?#8221;Q也出现timeout?br /> 3.Cleaning the project (Project->Clean)Q不行就重启eclipse或者androidQ很郁闷的是Q重启后q行W一ơ可以。第二次开始变慢了Q也是出现timeout<br /> <br /> 4.关闭eclipse Q然后再重启Q就ok<br /> <br /> <br /> 【错误信息?br /> 调用org.ksoap2.*讉Kwebservice?br /> 04-13 10:09:49.565: E/dalvikvm(354): Could not find class 'org.ksoap2.serialization.SoapObject', referenced from method......<br /> 04-13 10:09:49.585: E/dalvikvm(354): Could not find class 'org.ksoap2.transport.HttpTransportSE', referenced from method......<br /> 【错误信息?br /> Unable to open stack trace file '/data/anr/traces.txt': Permission denied<br /> 原因及解军_法:<br /> Unable to open stack trace file '/data/anr/traces.txt': Permission 多见于这个Activity你没有在AndroidManifest.xml中注册,׃报这L错误?br /> <br /> <br /> 【错误信息?br /> source not found<br /> 找不到源<br /> 原因及解军_法:<br /> android目录下没有对应的sources文g<br /> <img id="aimg_W4bj9" alt="" _load="1" src="http://www.51laifu.cn/upload/2012/07/04/20120704155744234.jpg" border="0" /><br /> 如下图,不知道ؓ什么,最新的SDK更新API 14/15中有Sources for Android SDK,而之前的版本的源码就不更斎ͼ气愤Q?br /> <img id="aimg_PB4z5" alt="" _load="1" src="http://www.51laifu.cn/upload/2012/07/04/20120704155744312.jpg" border="0" /><br /> 下蝲对应的SDK Sources后,攑ֈ\android-sdk-windows\sources 目录下就OK了!<br /> <img id="aimg_HxMJQ" alt="" _load="1" src="http://www.51laifu.cn/upload/2012/07/04/20120704155744453.jpg" border="0" width="650" /><br /> <br /> 【错误信息?br /> Android使用KSOAP2调用WebServiceӞ<br /> java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject<br /> 原因及解军_法:<br /> 虽然标明?Java Build Path->Libraries中已l引用了ksoap2-android 包,但是需要order and export中也把该包勾选上<br /> <img id="aimg_GzmWU" alt="" _load="1" src="http://www.51laifu.cn/upload/2012/07/04/20120704155744765.jpg" border="0" width="650" /><br /> <br /> 【错误信息?br /> <img id="aimg_IQSdq" alt="" _load="1" src="http://www.51laifu.cn/upload/2012/07/04/20120704155744890.jpg" border="0" /><br /> error: Error: No resource found that matches the given name (at 'layout_toLeftOf' with value'@id/top_send_btn'). <br /> header_questionitemlist.xml /IpsosAutoAndroid/res/layout W?27 ?Android AAPT Problem<br /> 原因及解军_法:<br /> <br /> <br /> 【错误信息?br /> 无法解析导入 com.renren.api.connect.android.R<br /> 原因及解军_法:<br /> 导入android源码有错QR.java文g不能自动生成解决Ҏ<br /> <br /> 【错误信息?br /> Eclipse中的DDMS无法打开data文g夹下的内容,也不能往里面写东?br /> 原因及解军_法:<br /> 通过软g获取ROOT权限<br /> <br /> 【错误信息?br /> Fri May 04 16:27:46 CST 2012<br /> Internal error logged from JDI Debug: <br /> org.eclipse.jdi.TimeoutException: {待?8 时发生超时?br /> at org.eclipse.jdi.internal.connect.PacketReceiveManager.getReply(PacketReceiveManager.java:171)<br /> at org.eclipse.jdi.internal.connect.PacketReceiveManager.getReply(PacketReceiveManager.java:180)<br /> ......<br /> 原因及解军_法:<br /> 重新启动eclipse,不行的话重启机器<br /> <br /> 【错误信息?br /> java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()<br /> 原因及解军_法:<br /> <br /> 如下是有问题的代码: <div align="left">                Thread t = new Thread() {@Overridepublic void run() {super.run();try {QuestionItemlist = quesHandler.getData();if (QuestionItemlist.size() == 0) {Toast.makeText(questionitemlist2.this,"问卷题目?I?,Toast.LENGTH_LONG).show();} else {Toast.makeText(questionitemlist2.this,"问卷题目已经??,Toast.LENGTH_LONG).show();}} catch (Exception e) {e.printStackTrace();}}};t.start();</div> <p>【错误信息?br /> java.lang.IllegalArgumentException: The key must be an application-specific resource id.<br /> 原因及解军_法:<br /> mRadioButton.setTag(1,sQuestionItem.get(i).getToNext());//讄监听  ToNextQ下 一题目mRadioButton.setTag(2,sQuestionItem.get(i).getToEnd());//讄监听  ToEndQ?是否l止 抛出IllegalArgumentException的原因就在于key不唯一Q正代码如下:<br /> mRadioButton.setTag(R.id.tag_tonext,sQuestionItem.get(i).getToNext());// 讄监听  ToNextQ下一题目 mRadioButton.setTag(R.id.tag_toend,sQuestionItem.get(i).getToEnd());//讄 监听  ToEndQ是否终? <br /> 【错误信息?br /> 点击Debug q行 l果模拟器L会弹出Waiting for Debugger 然后E序又可以正常运?br /> 如果你想调试的时候去?Waiting for Debugger 提示<br /> 原因及解军_法:<br /> 重启启动机器OK</p><p>本文 “<a >java之\</a>” 博客Q请务必保留此出?a >http://2402766.blog.51cto.com/2392766/1102373</a></p> </div></div><img src ="http://www.aygfsteel.com/yxj1314520/aggbug/399423.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/yxj1314520/" target="_blank">姚先q?/a> 2013-05-17 16:57 <a href="http://www.aygfsteel.com/yxj1314520/archive/2013/05/17/399423.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Fedora12下搭建Qt Creator的ARM开发环?q?ULQt4.6.2?/title><link>http://www.aygfsteel.com/yxj1314520/archive/2013/05/13/399215.html</link><dc:creator>姚先q?/dc:creator><author>姚先q?/author><pubDate>Mon, 13 May 2013 08:19:00 GMT</pubDate><guid>http://www.aygfsteel.com/yxj1314520/archive/2013/05/13/399215.html</guid><wfw:comment>http://www.aygfsteel.com/yxj1314520/comments/399215.html</wfw:comment><comments>http://www.aygfsteel.com/yxj1314520/archive/2013/05/13/399215.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/yxj1314520/comments/commentRss/399215.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/yxj1314520/services/trackbacks/399215.html</trackback:ping><description><![CDATA[<div><h1>Fedora12下搭建Qt Creator的ARM开发环?q?ULQt4.6.2到Micro2440Q一Q?/h1> <div> <div class="wmqeeuq" id="ads_r_tpc" style="clear:right;margin:0 0 8px 8px;"><a target="_blank"><img src="http://www.arm9home.net/ac/play/210-android.jpg" alt="" /></a></div> <div class="wmqeeuq" id="mag_tpc" style="margin-bottom:1em;"> <blockquote><div><span f12="" fn"="">理提醒Q? </span>本帖?kasim 执行|顶操作(2010-04-11) </div> </blockquote> </div> <div class="wmqeeuq" id="read_tpc"><div align="left">Fedora12下搭建Qt Creator的ARM开发环?q?ULQt4.6.2到Micro2440Q一Q?/div><div align="left"></div><div align="left">参考:</div><div align="left"><a target="_blank" id="url_1"><span style="color:#0000ff ">http://hi.baidu.com/jiyeqian/blog/item/f46d26a2ff3f7da6caefd0d6.html</span></a></div><div align="left"><a target="_blank" id="url_2"><span style="color:#0000ff ">http://blog.csdn.net/dongliqiang2006/archive/2009/08/30/4500002.aspx</span></a></div><div align="left"></div><div align="left">环境Q虚拟机Fedora12Q徏议安装Vmware ToolsQ详l安装方法参照Vmware帮助文档Q,USB串口Qminicoml端。(minicoml常打不开ttyUSB0讑֤Q我的解x法是Q打不开时就USB串口U除Q运行minicomQ然后再接上USB串口Q此时运行minicom一般都能打开讑֤Q?/div><div align="left"></div><div align="left">软g准备Q?/div><div align="left">到http://qt.nokia.com/downloads-cn下蝲最新版的Y件包Q当前是Q?/div><div align="left"></div><div align="left">用于 Linux/X11 32??Qt Creator 1.3.1 二进制Y件包qt-creator-linux-x86-opensource-1.3.1.binQhttp://qt.nokia.com/downloads/qt-creator-binary-for-linux-x11-32-bitQ?/div><div align="left"></div><div align="left">用于嵌入?Linux ?Qt ?4.6.2包qt-everywhere-opensource-src-4.6.2.tar.gzQhttp://qt.nokia.com/downloads/embedded-linux-cppQ?/div><div align="left"></div><div align="left">到http://hi.baidu.com/jiyeqian/blog/item/f46d26a2ff3f7da6caefd0d6.html下蝲arm920t-eabi.tgzQ即arm-linux-gcc-4.1.2Q(http://qtextended.org/downloads/toolchains/arm920t-eabi.tgzQ?/div><div align="left"></div><div align="left">到http://www.arm9.net/download.asp下蝲Root_QtopiaQ我用的是友善光盘里的root_qtopia-20100108.tar.gzQhttp://www.arm123.com.cn/linux/root_qtopia-20100108.tar.gzQ?/div><div align="left"></div><div align="left">下蝲tslib1.4Q这个忘了在哪下载的了,|上有很多,有些不能用,大家自己找个能用的吧?/div><div align="left"></div><div align="left">*以下安装Ҏ主要来自文章<a target="_blank" id="url_3"><span style="color:#0000ff ">http://hi.baidu.com/jiyeqian/blog/item/f46d26a2ff3f7da6caefd0d6.html</span></a></div><div align="left"></div><div align="left">?qt-everywhere-opensource-src-4.6.2.tar.gz 压羃包解压ؓ3份,分别~译 PC Q嵌入式 x86 ?arm 三个版本?/div><div align="left"></div><div align="left">我在root目录下徏立tmp文g夹,qt-everywhere-opensource-src-4.6.2.tar.gz直接解压后复?分,分别命名为pc、x86、arm?/div><div align="left"></div><div align="left"></div><div align="left">1. ~译 PC 版:</div><div align="left">q入pc目录</div><div align="left">#./configure</div><div align="left"># gmake</div><div align="left"># gmake install</div><div align="left">安装q程比较长,没有到q错误?/div><div align="left"></div><div align="left">2. ~译嵌入式x86版:</div><div align="left">q入x86目录</div><div align="left"># ./configure -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb</div><div align="left"># gmake</div><div align="left"># gmake install</div><div align="left">安装q程比较长,没有到q错误?/div><div align="left"></div><div align="left">~译安装PC版中?qvfbQ?/div><div align="left">q入pc/tools/qvfb/目录</div><div align="left">#make</div><div align="left">~译完毕Q将pc/bin目录下的qvfb文g复制?usr/local/Trolltech/QtEmbedded-4.6.2/bin目录?/div><div align="left"></div><div align="left">3. ~译嵌入式arm版(需?arm-linux-gcc 的支持)Q?/div><div align="left">使用友善自带的ARM-Linux GCC 4.3.2~译完了Q程序移植到开发板上后Q出现Segmentation Fault错误Q按原文Q?.1.2正常?/div><div align="left"></div><div align="left">直接arm920t-eabi.tgz解压~到根目录,不可以像文章中说的那?#8220;我把它放在:/usr/local/arm/4.1.2/ ”Q最L我放q去后出错了?/div><div align="left">把编译器路径加入pȝ环境变量Q运行命令: </div><div align="left">#gedit /root/.bashrc </div><div align="left">~辑/root/.bashrc文gQ在最后一行加?export PATH=/opt/toolchains/arm920t-eabi/bin:$PATH</div><br /><div align="left"></div><div align="left">~译tslib对触摸屏支持Q?/div><div align="left">下蝲Qtslib1.4.tar.gzQ解压后Q?/div><div align="left"># ./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes</div><div align="left"># make </div><div align="left"># make install</div><div align="left">我下载的包解压后没有configure文gQ需要运行autogen.sh后才能生成?/div><div align="left"></div><div align="left"><strike><span style="color:#0000ff ">讄环境变量Q以便编译时扑ֈ相关的库Q?/span></strike></div><div align="left"><strike><span style="color:#0000ff "># export CPLUS_INCLUDE_PATH=/opt/toolchains/arm920t-eabi/arm-angstrom-linux-gnueabi/include/c++:/opt/toolchains/arm920t-eabi/arm-angstrom-linux-gnueabi/include/c++/arm-none-linux-gnueabi</span></strike></div><div align="left"><strike><span style="color:#0000ff "># export PATH=/opt/toolchains/arm920t-eabi/bin:$PATH</span></strike></div><div align="left"><strike> </strike><strike> </strike><strike><span style="color:#0000ff "><br /></span></strike></div><div align="left"><strike><span style="color:#0000ff ">修改</span></strike><strike><span style="color:#0000ff ">qt-everywhere-opensource-src-4.6.2/mkspecs/qws/linux-arm-g++/qmake.conf </span></strike><strike><span style="color:#0000ff ">文gQ添?/span></strike><strike><span style="color:#0000ff ">lts</span></strike><strike><span style="color:#0000ff ">参数Q:</span></strike></div><div align="left"><strike><span style="color:#0000ff ">QMAKE_CC                = arm-linux-gcc -lts</span></strike></div><div align="left"><strike><span style="color:#0000ff ">QMAKE_CXX               = arm-linux-g++ -lts</span></strike></div><div align="left"><strike><span style="color:#0000ff ">QMAKE_LINK              = arm-linux-g++ -lts</span></strike></div><div align="left"><strike><span style="color:#0000ff ">QMAKE_LINK_SHLIB        = arm-linux-g++ -lts</span></strike></div><div align="left"><strike><span style="color:#0000ff ">q一步必LQ不然肯定出错?/span></strike></div><div align="left"></div><div align="left">配置Q?/div><div align="left">必须加上“<span style="color:#ff6600 ">-prefix /usr/local/Trolltech/QtEmbedded-4.6.2-arm </span>”参数Q?不然安装后不在QtEmbedded-4.6.2-arm文g夹下Q而是覆盖了QtEmbedded-4.6.2?/div><div align="left"># ./configure \</div><div align="left"><span style="color:#ff6600 ">-prefix /usr/local/Trolltech/QtEmbedded-4.6.2-arm \ <br /></span></div><div align="left">-opensource \</div><div align="left">-confirm-license \</div><div align="left">-release -shared \</div><div align="left">-embedded arm \</div><div align="left">-xplatform qws/linux-arm-g++ \</div><div align="left">-depths 16,18,24 \</div><div align="left">-fast \</div><div align="left">-optimized-qmake \</div><div align="left">-pch \</div><div align="left">-qt-sql-sqlite \</div><div align="left">-qt-libjpeg \</div><div align="left">-qt-zlib \</div><div align="left">-qt-libpng \</div><div align="left">-qt-freetype \</div><div align="left">-little-endian -host-little-endian \</div><div align="left">-no-qt3support \</div><div align="left">-no-libtiff -no-libmng \</div><div align="left">-no-opengl \</div><div align="left">-no-mmx -no-sse -no-sse2 \</div><div align="left">-no-3dnow \</div><div align="left">-no-openssl \</div><div align="left">-no-webkit \</div><div align="left">-no-qvfb \</div><div align="left">-no-phonon \</div><div align="left">-no-nis \</div><div align="left">-no-opengl \</div><div align="left">-no-cups \</div><div align="left">-no-glib \</div><div align="left">-no-xcursor -no-xfixes -no-xrandr -no-xrender \</div><div align="left">-no-separate-debug-info \</div><div align="left">-nomake examples -nomake tools -nomake docs \</div><div align="left">-qt-mouse-tslib <span style="color:#0000ff "><strike>-I/usr/local/tslib/include -L/usr/local/tslib/lib</strike></span></div><div align="left"><span style="color:#0000ff "><strike><br /></strike></span></div><div align="left"><span style="color:#ff0000 ">上面划掉的蓝色内容,可以不要的,q样~辑也不会出错(虚拟机搞坏了Q不得已重装Q配|参数时忘了q上面的工作了,l果发现没出错)?/span><span style="color:#0000ff "><strike><br /></strike></span></div><div align="left"><span style="color:#ff0000 "><br /></span></div><div align="left"><span style="color:#ff0000 ">关于配置参数Q参照一下这文章吧Q可以用configure -embedded –help查看?br /></span></div><div align="left"><span style="color:#0000ff "><strike><br /></strike></span></div><div align="left"><span style="color:#0000ff ">http://www.cuteqt.com/blog/?p=582</span><span style="color:#0000ff "><strike><br /></strike></span></div><div align="left"></div><div align="left">如果你放弃配|,则用命令:# gmake confclean</div><div align="left"></div><div align="left">~译Q? gmake</div><div align="left"></div><div align="left">安装Q? gmake install </div><div align="left"></div><div align="left">安装完成后,?/usr/local/Trolltech 目录中有三个文g夹:Qt-4.6.2、QtEmbedded-4.6.2、QtEmbedded-4.6.2-arm?/div><div align="left"></div><div align="left">4、移?/div><div align="left">我是通过NFS启动的系l,具体操作可以参照友善的手册,在http://www.arm9.net/download.asp有下载,在第5.5.3节通过NFS启动pȝ?/div><div align="left"></div><div align="left">Fedora12?nbsp; /usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib 中的所有文件复制到/opt/FriendlyARM/mini2440/root_qtopia/usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib目录中(对应目录复制Q相当于复制C开发板对应目录中)Q其实需要的时候可以裁剪,看原文吧?/div><div align="left"></div><div align="left">Fedora12?nbsp; /usr/local/tslib 中的库复制到/opt/FriendlyARM/mini2440/root_qtopia/usr/local中。即?usr/local/tslib下的所有文件复制到/opt/FriendlyARM/mini2440/root_qtopia/usr/local文g夹下?/div><div align="left"></div><div align="left">如果q行时还~少其他的库Q复制方法相同。也可以使用arm-angstrom-linux-gnueabi-readelf -a E序?| grep "Share"Q命令查看需要哪些共享库Q一起复制过厅R?/div><div align="left"></div><div align="left">为支持触摸屏Q开动设|环境变量,?440?/etc/profile中追加:</div><div align="left">export LD_LIBRARY_PATH=/usr/local/lib:$QTDIR/lib:$LD_LIBRARY_PATH                                                  </div><div align="left">export TSLIB_ROOT=/usr/local/lib     </div><div align="left">export TSLIB_TSDEVICE=/dev/input/event0</div><div align="left">export TSLIB_FBDEVICE=/dev/fb0  </div><div align="left">export TSLIB_PLUGINDIR=/usr/local/lib/ts</div><div align="left">export TSLIB_CONSOLEDEVICE=none</div><div align="left">export TSLIB_CONFFILE=/usr/local/etc/ts.conf</div><div align="left">export POINTERCAL_FILE=/etc/pointercal</div><div align="left">export TSLIB_CALIBFILE=/etc/pointercal</div><div align="left">export QWS_MOUSE_PROTO=Tslib:/dev/input/event0</div><div align="left"></div><div align="left">取消/usr/local/etc/ts.conf中的W一个注释:</div><div align="left"># module_raw input Q去?Qƈ且该行顶|</div><div align="left">我编辑时没有“#”</div><div align="left"></div><div align="left">启动Micro2440q行 /usr/local/bin/ts_calibrate 校正触摸屏?/div><div align="left"></div><div align="left">到此Qt4.6.2的移植暂告一D落Q移植还没有完,此时如果在开发板上运行Qt4.6.2-arm~译的程序,则会出现“relocation error: /usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib/libQtGui.so.4: symbol powf, version GLIBCXX_3.4 not defined in file libstdc++.so.6 with link time reference”错误?/div><div align="left"></div><div align="left">今天晚了Q明天l奉?#8230;…</div><div align="left"><span id="att_1004"><img src="http://www.arm9home.net/images/wind/file/zip.gif" align="absmiddle" alt="" /><a target="_blank"> tslib-1.4.part1.rar</a> (900 K) 下蝲ơ数:1066 </span><span id="att_1005"><img src="http://www.arm9home.net/images/wind/file/zip.gif" align="absmiddle" alt="" /><a target="_blank"> tslib-1.4.part2.rar</a> (223 K) 下蝲ơ数:936 </span></div></div></div></div><br /><br /><div><div fl"="" style="margin-left:1em;"> <h1> Fedora12下搭建Qt Creator的ARM开发环?q?ULQt4.6.2到Micro2440Q二Q?/h1> </div> <div class="wmqeeuq" id="ads_r_tpc" style="clear:right;margin:0 0 8px 8px;"><a target="_blank"><img src="http://www.arm9home.net/ac/play/210-android.jpg" alt="" /></a></div> <div class="wmqeeuq" id="mag_tpc" style="margin-bottom:1em;"> <blockquote><div><span f12="" fn"="">理提醒Q? </span>本帖?kasim 执行加亮操作(2010-04-11) </div> </blockquote> </div> <div align="left">Fedora12下搭建Qt Creator的ARM开发环?q?ULQt4.6.2到Micro2440Q二Q?/div><div align="left"></div><div align="left">l箋……</div><div align="left"></div><div align="left">5、安装Qt-creator-1.3.1</div><div align="left">把下载的qt-creator-linux-x86-opensource-1.3.1.bin文g拷到一个目录(如前面的/root/tmp目录Q,q入目录Q?/div><div align="left"></div><div align="left">讄qt-creator-linux-x86-opensource-1.3.1.bin文g为可执行</div><div align="left">#chmod +x qt-creator-linux-x86-opensource-1.3.1.bin</div><div align="left"></div><div align="left">安装Q?/div><div align="left"># ./ qt-creator-linux-x86-opensource-1.3.1.bin</div><div align="left"></div><div align="left">启动安装界面Q默认一路Next卛_?/div><div align="left"></div><div align="left">*如果我们下蝲的是Qt的SDKQqt-sdk-linux-x86-opensource-2010.02.binQ,q里可以选择安装Qt的开发环境,q样Q在前面安装pc版Qt那步可以省了,关键是可以省出很多时间的?/div><div align="left"></div><div align="left">6、Qt-creator开发环境的配置</div><div align="left">启动Qt-creator?/div><div align="left"></div><div align="left">在Qt-creator菜单栏Tools—〉Options…打开OptionsH口?/div><div align="left">在Options界面左侧Q点击Qt4—〉Qt Versions右侧昄Qt Versions讄界面?/div><div align="left"></div><div align="left">在Qt Versions界面中点击那个蓝色的?#8220;<span style="color:#365f91 ">╋</span>”号图?/div><div align="left">在下方Version NameQ文本框内输入Qt的版本名Q可以随便填Q能区分各个版本卛_Q如pc版取Qt4.6.2-pc、x86版取QtE4.6.2-x86、arm版取QtE4.6.2-armQ?/div><div align="left"></div><div align="left">单击Qmake LocationQ右侧Browse…按钮Q在弹出?#8220;Select QMake Executable”H口中找到对应版本的qmakeE序Q按照我们前面安转的Qpc版\径:/usr/local/Trolltech/Qt-4.6.2/bin/qmakeQx86版\径:/usr/local/Trolltech/QtEmbedded-4.6.2/bin/qmakeQarm版\径:/usr/local/Trolltech/QtEmbedded-4.6.2-arm/bin/qmakeQ,单击打开Q回到Qt Versions界面?/div><div align="left"></div><div align="left">回到Qt Versions界面Q单击Debugging HelperQ右侧Rebuild按钮Q等待片刻,看到Debugging HelperQ后出现一个绿色的“<span style="color:#00b050 ">√</span>”卛_?/div><div align="left"></div><div align="left">同理完成其他版本的添加?/div><div align="left"></div><div align="left">d完毕Q单击OK按钮关闭OptionsH口?/div><div align="left"></div><div align="left">到此QQt-creator配置完毕Q我暂时配|了q些Q?/div><div align="left"></div><div align="left">7、一个例?/div><div align="left">从usr/local/Trolltech/QtEmbedded-4.6.2/demos下复制books例程到root/tmp文g夹下?/div><div align="left"></div><div align="left">启动Qt-creatorQFile—〉Open File or Project…Q打开root/tmp/books/books.pro?/div><div align="left"></div><div align="left">q里我们分两部分Q首先编译x86下的Qƈq行在qvfb下,再编译arm下的Q移到开发板下运行?/div><div align="left"></div><div align="left">7.1、x86下的~译与调?/div><div align="left">在Qt-creator界面左侧点击Projects图标Q打开工程讄界面?/div><div align="left"></div><div align="left">从上往下,</div><div align="left"></div><div align="left">在Edit Project Settings for Project books——〉Build Settings——〉Edit Build ConfigurationQ单击AddQ在下拉列表中选择Using Qt Version “QtE4.6.2-x86”弹出对话框单击Ok按钮Q在Edit Build ConfigurationQ下会出现蓝色的Make QtE4.6.3-x86 Release active.字符Q单LzQtE4.6.3-x86 Release?/div><div align="left"></div><div align="left">在Run Settings——〉Edit run configurationQ右侧单击Show Details按钮Q在打开的下拉列表中ArgumentsQ文本框中添加参?#8220;-qws”?/div><div align="left"></div><div align="left">讄完毕Q点击Edit图标Q回到编辑界面?/div><div align="left"></div><div align="left">~译Q在Build菜单下,先Clean Project “books”Q然后Build Project “books”Q在右下角Compile OutputH口能看到编译信息(按我们上面这栯来,到此~译不会出问题的Q?/div><div align="left"></div><div align="left">q行Q?/div><div align="left"> 启动l端Q? /usr/local/Trolltech/QtEmbedded-4.6.2/bin/qvfb -width 800 -height 480 &Q启动Qvfb?/div><div align="left"> 回到Qt-creatorQBuild——〉RunQ运行程序?/div><div align="left"></div><div align="left">切换我们的QvfbH口中,是不是看到Booksq行的界面了?/div><div align="left"></div><div align="left">调试QDebug——〉Start Debugging——〉Start DebuggingQ即可启动调试(请保证books路径中没有中文名Q即不要把books工程攑֜了某个含有中文字W的文g夹下Q不然无法启动调试)?/div><div align="left"></div><div align="left">此时感觉如果前面~译选项Edit Project Settings for Project books——〉Build Settings——〉Edit Build ConfigurationQ选择Debug,则调试启动速度比Release时的要快很多?/div><div align="left"></div><div align="left">7.2、arm~译q移?/div><div align="left"></div><div align="left">~译Q在Projects讄界面下,选择Using Qt Version “QtE4.6.2-arm”,余下参数不变Qbuild?/div><div align="left"></div><div align="left">复制~译好的文gQ也许还有images文g夹)?440的NFS文gpȝ的某个目录下Q我直接把books文g夹复制过MQ在Fedora12 文gpȝ下是/opt/FriendlyARM/mini2440/root_qtopia/home/plg文g夹下Q?/div><div align="left"></div><div align="left">q行及错误处理:</div><div align="left">在minicom下面Qps一下,扑ֈqpeq程对应的PIDQ比?234Q然后通过kill 1234杀死Qtopia?/div><div align="left">q入books目录Q执?/books –qwsQ此时就会出现前面讲到的“relocation error: /usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib/libQtGui.so.4: symbol powf, version GLIBCXX_3.4 not defined in file libstdc++.so.6 with link time reference”错误?/div><div align="left"></div><div align="left">我的解决办法是进入主?opt/toolchains/arm920t-eabi/arm-angstrom-linux-gnueabi/lib目录下找到libstdc++.so.6链接的文件libstdc++.so.6.0.8Q通过右键属?#8212;—〉基本,可以看到链接的文ӞQ复制ƈ重命名ؓlibstdc++.so.6?opt/FriendlyARM/mini2440/root_qtopia/lib文g夹下Q之前别忘了该文g夹下的libstdc++.so.6Ud其它地方或重命名Q如libstdc++.so.6.old?/div><div align="left"></div><div align="left">*重命名其实是比较野蛮的方法,可以用ln命o的,参照下面q篇文章……</div><div align="left"></div><div align="left">http://hi.baidu.com/a263238386/blog/item/362f01ce7b11a10a93457eae.html</div><div align="left"></div><div align="left">然后再运?/books –qwsQ看问题是不是解决了Q?/div><div align="left"></div><div align="left">q里有个新的问题q没解决Q就是在开发版上运行时字非常小Q留着以后处理吧?/div><div align="left"></div><div align="left">OKQ至此,Fedora12下搭建Qt Creator的ARM开发环?q?ULQt4.6.2到Micro2440告一D落了,留下两个问题Q字体非常小的问题、开发板上的q程调试Q留待下ơ解冟?/div></div><img src ="http://www.aygfsteel.com/yxj1314520/aggbug/399215.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/yxj1314520/" target="_blank">姚先q?/a> 2013-05-13 16:19 <a href="http://www.aygfsteel.com/yxj1314520/archive/2013/05/13/399215.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>q求http://www.aygfsteel.com/yxj1314520/archive/2013/05/10/399088.html姚先q?/dc:creator>姚先q?/author>Fri, 10 May 2013 02:02:00 GMThttp://www.aygfsteel.com/yxj1314520/archive/2013/05/10/399088.htmlhttp://www.aygfsteel.com/yxj1314520/comments/399088.htmlhttp://www.aygfsteel.com/yxj1314520/archive/2013/05/10/399088.html#Feedback0http://www.aygfsteel.com/yxj1314520/comments/commentRss/399088.htmlhttp://www.aygfsteel.com/yxj1314520/services/trackbacks/399088.html
d多时Q猛然看C的文字,q面而来的是清新和洒脱,N了自己,开阔了心境。从心里面ؓ他高_又隐隐的疼惜自己Q因Z个hq没有放下?br />多伤感,多惆怅,多很多的是逃避?br />
有时候突然豪a壮语Q突然壮志凌云,H然觉得一切都可能。但是有时又发现那些东西可有可无Q无非是名利Q是物质满Q是填补Ʋ望Q?br />没有真正的追?br />

]]>
json 解析http://www.aygfsteel.com/yxj1314520/archive/2013/04/22/398231.html姚先q?/dc:creator>姚先q?/author>Mon, 22 Apr 2013 12:21:00 GMThttp://www.aygfsteel.com/yxj1314520/archive/2013/04/22/398231.htmlhttp://www.aygfsteel.com/yxj1314520/comments/398231.htmlhttp://www.aygfsteel.com/yxj1314520/archive/2013/04/22/398231.html#Feedback0http://www.aygfsteel.com/yxj1314520/comments/commentRss/398231.htmlhttp://www.aygfsteel.com/yxj1314520/services/trackbacks/398231.html  package com.example.hoteltest;
    import java.io.ByteArrayOutputStream;  
import java.io.InputStream;  
import java.net.*;  
import java.util.ArrayList;  
import java.util.HashMap;  
import java.util.List;  
import java.util.Map;  
import org.json.JSONArray;  
import org.json.JSONObject;  
import android.util.Log;  
      
    public class JSON {  
      
          
        /**
         * 获取"数组形式"的JSON数据Q?
         * 数据形式Q[{"id":1,"name":"猪"},{"id":2,"name":"猫"}]
         * @param path  |页路径
         * @return  q回List
         * @throws Exception
         */  
        public static List<Map<String, String>> getJSONArray(String path) throws Exception {  
            String json = null;  
            List<Map<String, String>> list = new ArrayList<Map<String, String>>();  
            Map<String, String> map = null;  
            URL url = new URL(path);  
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();// 利用HttpURLConnection对象,我们可以从网l中获取|页数据.  
            conn.setConnectTimeout(5 * 1000);   // 单位是毫U,讄时旉?U? 
            conn.setRequestMethod("GET");       // HttpURLConnection是通过HTTP协议hpath路径的,所以需要设|请求方?可以不设|,因ؓ默认为GET  
            if (conn.getResponseCode() == 200) {// 判断h码是否是200码,否则p|  
                InputStream is = conn.getInputStream(); // 获取输入? 
                byte[] data = readStream(is);   // 把输入流转换成字W数l? 
                json = new String(data);        // 把字W数l{换成字符? 
                  
                //数据形式Q[{"id":1,"name":"猪","age":22},{"id":2,"name":"猫","age":23}]  
                JSONArray jsonArray = new JSONArray(json); //数据直接Z个数lŞ式,所以可以直?用android提供的框架JSONArraydJSON数据Q{换成Array  
      
                for (int i = 0; i < jsonArray.length(); i++) {  
                    JSONObject item = jsonArray.getJSONObject(i); //每条记录又由几个Object对象l成  
                    int id = item.getInt("id");     // 获取对象对应的? 
                    String name = item.getString("name");  
      
                    map = new HashMap<String, String>(); // 存放到MAP里面  
                    map.put("id", id + "");  
                    map.put("name", name);  
                    list.add(map);  
                }  
            }  
      
            // ***********试数据******************  
            for (Map<String, String> list2 : list) {  
                String id = list2.get("id");  
                String name = list2.get("name");  
                Log.i("abc", "id:" + id + " | name:" + name);  
            }  
      
            return list;  
        }  
      
        /**
         * 获取"对象形式"的JSON数据Q?
         * 数据形式Q{"total":2,"success":true,"arrayData":[{"id":1,"name":"猪"},{"id":2,"name":"猫"}]}
         * @param path  |页路径
         * @return  q回List
         * @throws Exception
         */  
        public static List<Map<String, String>> getJSONObject(String path) throws Exception {  
            List<Map<String, String>> list = new ArrayList<Map<String, String>>();  
            Map<String, String> map = null;  
            URL url = new URL(path);  
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();// 利用HttpURLConnection对象,我们可以从网l中获取|页数据.  
            conn.setConnectTimeout(5 * 1000);   // 单位是毫U,讄时旉?U? 
            conn.setRequestMethod("GET");       // HttpURLConnection是通过HTTP协议hpath路径的,所以需要设|请求方?可以不设|,因ؓ默认为GET  
            if (conn.getResponseCode() == 200) {// 判断h码是否是200码,否则p|  
                InputStream is = conn.getInputStream(); // 获取输入? 
                byte[] data = readStream(is);   // 把输入流转换成字W数l? 
                String json = new String(data); // 把字W数l{换成字符? 
                  
                  
                //数据形式Q{"total":2,"success":true,"arrayData":[{"id":1,"name":"猪"},{"id":2,"name":"猫"}]}  
                JSONObject jsonObject=new JSONObject(json);     //q回的数据Ş式是一个ObjectcdQ所以可以直接{换成一个Object  
                int page=jsonObject.getInt("page");  
                String type=jsonObject.getString("type");  
                Log.i("abc", "type:" + type + " |page:" + page);   //试数据  
                  
                JSONArray jsonArray = jsonObject.getJSONArray("hotels");//里面有一个数l数据,可以用getJSONArray获取数组  
                for (int i = 0; i < jsonArray.length(); i++) {  
                    
                    JSONObject item = jsonArray.getJSONObject(i); // 得到每个对象
                    
                    double distance=item.getDouble("distance");
                    String direction=item.getString("direction");
                    int star_rating=item.getInt("star_rating");
                    String name=item.getString("name");
                    double nightly_rate=item.getDouble("nightly_rate");
                    double promoted_nightly_rate=item.getDouble("promoted_nightly_rate");
                    double total_rate=item.getDouble("total_rate");
                    double longitude=item.getDouble("longitude");
                    String key=item.getString("key");
                    double promoted_total_rate=item.getDouble("promoted_total_rate");
                    String latitude=item.getString("latitude");
                    long master_id=item.getLong("master_id");
                    String thumbnail=item.getString("thumbnail");
                    String street_address=item.getString("street_address");
                    double review_score=item.getDouble("review_score");
           
                    map = new HashMap<String, String>(); // 存放到MAP里面  
                    map.put("distance", distance + "");  
                    map.put("direction", direction + "");  
                    map.put("star_rating", star_rating + "");  
                    map.put("name", name + "");  
                    map.put("nightly_rate", nightly_rate + "");  
                    map.put("promoted_nightly_rate", promoted_nightly_rate + "");  
                    map.put("total_rate", total_rate + "");  
                    map.put("key", key + "");  
                    map.put("promoted_total_rate", promoted_total_rate + "");  
                    map.put("latitude", latitude + "");  
                    map.put("master_id", master_id + "");  
                    map.put("thumbnail", thumbnail + "");    
                    map.put("street_address", street_address + "");  
                    map.put("review_score", review_score + "");  
                  
                    
                    list.add(map);  
                }  
            }  
      
            // ***********试数据******************  
              
            for (Map<String, String> list2 : list) {  
                String distance = list2.get("distance");  
                String direction = list2.get("direction");  
                String star_rating = list2.get("star_rating");  
                String name = list2.get("name");  
                String nightly_rate = list2.get("nightly_rate");  
                String promoted_nightly_rate = list2.get("promoted_nightly_rate");  
                String total_rate = list2.get("total_rate");  
                String key = list2.get("key");  
                String promoted_total_rate = list2.get("promoted_total_rate");  
                String latitude = list2.get("latitude");  
                String master_id = list2.get("master_id");  
                String thumbnail = list2.get("thumbnail");  
                String street_address = list2.get("street_address");  
                String review_score = list2.get("review_score");  
                System.out.println(distance);
                System.out.println(direction);
                System.out.println(star_rating);
                System.out.println(name);
                System.out.println(nightly_rate);
                System.out.println(promoted_nightly_rate);
                System.out.println(total_rate);
                System.out.println(key);
                System.out.println(promoted_total_rate);
                System.out.println(latitude);
                System.out.println(master_id);
                System.out.println(thumbnail);
                System.out.println(street_address);
                System.out.println(review_score);
            }  
      
            return list;  
        }  
          
          
        /**
         * 获取cd复杂的JSON数据
         *数据形式Q?
            {"name":"猪",
             "age":23,
             "content":{"questionsTotal":2,
                        "questions": [ { "question": "what's your name?", "answer": "猪"},{"question": "what's your age", "answer": "23"}]
                       }
            }
         * @param path  |页路径
         * @return  q回List
         * @throws Exception
         */  
        public static List<Map<String, String>> getJSON(String path) throws Exception {  
            List<Map<String, String>> list = new ArrayList<Map<String, String>>();  
            Map<String, String> map = null;  
            URL url = new URL(path);  
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();// 利用HttpURLConnection对象,我们可以从网l中获取|页数据.  
            conn.setConnectTimeout(5 * 1000);   // 单位是毫U,讄时旉?U? 
            conn.setRequestMethod("GET");       // HttpURLConnection是通过HTTP协议hpath路径的,所以需要设|请求方?可以不设|,因ؓ默认为GET  
            if (conn.getResponseCode() == 200) {// 判断h码是否是200码,否则p|  
                InputStream is = conn.getInputStream(); // 获取输入? 
                byte[] data = readStream(is);   // 把输入流转换成字W数l? 
                String json = new String(data); // 把字W数l{换成字符? 
                  
                  
                /*数据形式Q?
                    {"name":"猪",
                     "age":23,
                     "content":{"questionsTotal":2,
                                "questions": [ { "question": "what's your name?", "answer": "猪"},{"question": "what's your age", "answer": "23"}]
                               }
                    }
                */    
                JSONObject jsonObject=new JSONObject(json);     //q回的数据Ş式是一个ObjectcdQ所以可以直接{换成一个Object  
                String name=jsonObject.getString("name");         
                int age=jsonObject.getInt("age");  
                Log.i("abc", "name:" + name + " | age:" + age); //试数据  
                  
                JSONObject contentObject=jsonObject.getJSONObject("content");       //获取对象中的对象  
                String questionsTotal=contentObject.getString("questionsTotal");    //获取对象中的一个? 
                Log.i("abc", "questionsTotal:" + questionsTotal);   //试数据  
                  
                JSONArray contentArray=contentObject.getJSONArray("questions");     //获取对象中的数组  
                for (int i = 0; i < contentArray.length(); i++) {  
                    JSONObject item = contentArray.getJSONObject(i); // 得到每个对象  
                    String question = item.getString("question");   // 获取对象对应的? 
                    String answer = item.getString("answer");  
      
                    map = new HashMap<String, String>(); // 存放到MAP里面  
                    map.put("question", question);  
                    map.put("answer", answer);  
                    list.add(map);  
                }  
            }  
      
            // ***********试数据******************  
              
            for (Map<String, String> list2 : list) {  
                String question = list2.get("question");  
                String answer = list2.get("answer");  
                Log.i("abc", "question:" + question + " | answer:" + answer);  
            }  
      
            return list;  
        }  
          
          
          
          
        /**
         * 把输入流转换成字W数l?
         * @param inputStream   输入?
         * @return  字符数组
         * @throws Exception
         */  
        public static byte[] readStream(InputStream inputStream) throws Exception {  
            ByteArrayOutputStream bout = new ByteArrayOutputStream();  
            byte[] buffer = new byte[1024];  
            int len = 0;  
            while ((len = inputStream.read(buffer)) != -1) {  
                bout.write(buffer, 0, len);  
            }  
            bout.close();  
            inputStream.close();  
      
            return bout.toByteArray();  
        }  
      
    } 

]]>
首先说一下Json数据的最基本的特?/title><link>http://www.aygfsteel.com/yxj1314520/archive/2013/04/22/398230.html</link><dc:creator>姚先q?/dc:creator><author>姚先q?/author><pubDate>Mon, 22 Apr 2013 11:11:00 GMT</pubDate><guid>http://www.aygfsteel.com/yxj1314520/archive/2013/04/22/398230.html</guid><wfw:comment>http://www.aygfsteel.com/yxj1314520/comments/398230.html</wfw:comment><comments>http://www.aygfsteel.com/yxj1314520/archive/2013/04/22/398230.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/yxj1314520/comments/commentRss/398230.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/yxj1314520/services/trackbacks/398230.html</trackback:ping><description><![CDATA[<div><br /> <p style="line-height:25px;text-indent:nullem;text-align:left">首先说一下Json数据的最基本的特点,Json数据是一pd的键值对的集?和XML数据来比QJson数据的体U更加小Q传输效率高Q易解析Q不q可L不?</p><p style="line-height:25px;text-indent:nullem;text-align:left">      因ؓq次要从服务器端得到Json数据Qƈ且通过解析之后把解析后的数据显C在Android客户端中Q首先部|服务器端代?直接使用Jsp/Servlet):</p><p style="line-height:25px;text-indent:nullem;text-align:left">       构造的Json数据如下:</p><p style="line-height:25px;text-indent:nullem;text-align:left">     [{"name":"张三","address":"北京","age":20},{"name":"李四","address":"上v","age":30},{"name":"王五","address":"深圳","age":35}]</p><p style="line-height:25px;text-indent:nullem;text-align:left"><br /> </p><p style="line-height:25px;text-indent:nullem;text-align:left">[一]服务器端(Person.java省略):</p><p style="line-height:25px;text-indent:nullem;text-align:left">     ①:数据构造JsonService.java</p><div><div class="wmqeeuq" id="code_I3D"><ol><li><span style="font-size: 16px; ">public class JsonService {<br /> </li><li>        public static List<Person> getListPerson() {<br /> </li><li>                List<Person> mLists = new ArrayList<Person>();<br /> </li><li>                mLists.add(new Person("张三", "北京", 20));<br /> </li><li>                mLists.add(new Person("李四", "上v", 30));<br /> </li><li>                mLists.add(new Person("王五", "深圳", 35));<br /> </li><li>                return mLists;<br /> </li><li>        }</span></li></ol></div><em>复制代码</em></div>   ②:Servlet的代码(包括构造Json数据Q没有用Json数据转换ҎQJsonServlet.java<br /> <div><div class="wmqeeuq" id="code_qXC"><ol><li><span style="font-size: 16px; ">public void doGet(HttpServletRequest request, HttpServletResponse response)<br /> </li><li>                        throws ServletException, IOException {<br /> </li><li>                response.setContentType("text/html");<br /> </li><li>                response.setCharacterEncoding("UTF-8");<br /> </li><li>                PrintWriter out = response.getWriter();<br /> </li><li>                List<Person> persons = JsonService.getListPerson();<br /> </li><li>                StringBuffer sb = new StringBuffer();<br /> </li><li>                sb.append('[');<br /> </li><li>                for (Person person : persons) {<br /> </li><li>                        sb.append('{').append("\"name\":").append("\""+person.getName()+"\"").append(<br /> </li><li>                                        ",");<br /> </li><li>                        sb.append("\"address\":").append("\""+person.getAddress()+"\"").append(",");<br /> </li><li>                        sb.append("\"age\":").append(person.getAge());<br /> </li><li>                        sb.append('}').append(",");<br /> </li><li>                }<br /> </li><li>                sb.deleteCharAt(sb.length() - 1);<br /> </li><li>                sb.append(']');<br /> </li><li>                out.write(new String(sb));<br /> </li><li>                out.flush();<br /> </li><li>                out.close();<br /> </li><li>        }</span></li></ol></div><em>复制代码</em></div><div><div class="wmqeeuq" id="code_wbp"><ol><li><span style="font-size: 16px; "><br /> </li><li></span></li></ol></div><em>复制代码</em></div>  ③:部v到Tomact 览器输?a href="http://localhost/JsonWeb/JsonServlet" target="_blank">http://localhost/JsonWeb/JsonServlet</a>直接讉Kl果如下: <img _load="1" id="aimg_17781" src="http://www.apkbus.com/data/attachment/forum/201203/15/091351d010ddhbd99q9h59.gif" alt="0_1330066556axYL.gif" title="0_1330066556axYL.gif" width="600" />        x服务器端代码~码完成Q下面进行客L代码~写;    (?客户?Personc,和展C数据的布局文g因ؓ单省?<br />       ①:获取服务器端的Json数据q且解析的工LJsonParse.java<br />   必要的需要导入的包省?nbsp; <div><div class="wmqeeuq" id="code_zLQ"><ol><li><span style="font-size:18px;">public class JsonParse {<br /> </li><li>        /**<br /> </li><li>         * 解析Json数据<br /> </li><li>         * <br /> </li><li>         * @param urlPath<br /> </li><li>         * @return mlists<br /> </li><li>         * @throws Exception<br /> </li><li>         */<br /> </li><li>        public static List<Person> getListPerson(String urlPath) throws Exception {<br /> </li><li>                List<Person> mlists = new ArrayList<Person>();<br /> </li><li>                byte[] data = readParse(urlPath);<br /> </li><li>                JSONArray array = new JSONArray(new String(data));<br /> </li><li>                for (int i = 0; i < array.length(); i++) {<br /> </li><li>                        JSONObject item = array.getJSONObject(i);<br /> </li><li>                        String name = item.getString("name");<br /> </li><li>                        String address = item.getString("address");<br /> </li><li>                        int age = item.getInt("age");<br /> </li><li>                        mlists.add(new Person(name, address, age));<br /> </li><li>                }<br /> </li><li>                return mlists;<br /> </li><li>        }<br /> </li><li>        /**<br /> </li><li>         * 从指定的url中获取字节数l?br /> </li><li>         * <br /> </li><li>         * @param urlPath<br /> </li><li>         * @return 字节数组<br /> </li><li>         * @throws Exception<br /> </li><li>         */<br /> </li><li>        public static byte[] readParse(String urlPath) throws Exception {<br /> </li><li>                ByteArrayOutputStream outStream = new ByteArrayOutputStream();<br /> </li><li>                byte[] data = new byte[1024];<br /> </li><li>                int len = 0;<br /> </li><li>                URL url = new URL(urlPath);<br /> </li><li>                HttpURLConnection conn = (HttpURLConnection) url.openConnection();<br /> </li><li>                InputStream inStream = conn.getInputStream();<br /> </li><li>                while ((len = inStream.read(data)) != -1) {<br /> </li><li>                        outStream.write(data, 0, len);<br /> </li><li>                }<br /> </li><li>                inStream.close();<br /> </li><li>                return outStream.toByteArray();<br /> </li><li>        }<br /> </li><li>}</span></li></ol></div><em>复制代码</em></div>②:主Activityc?div><div class="wmqeeuq" id="code_K7Y"><ol><li><pre name="code" class="java">public class MainActivity extends Activity {<br /> </li><li>        private Button mButton;<br /> </li><li>        private ListView mListView;<br /> </li><li>        //使用IP不能使用localhost或?27.0.0.1Q因为android模拟器默认绑定这个IPQ这里应该访问局域网IP<br /> </li><li>        private static final String urlPath = "http://10.16.31.207/JsonWeb/JsonServlet";<br /> </li><li>        private static final String TAG = "MainActivity";<br /> </li><li>        private List<Person> persons;<br /> </li><li>        @Override<br /> </li><li>        public void onCreate(Bundle savedInstanceState) {<br /> </li><li>                super.onCreate(savedInstanceState);<br /> </li><li>                setContentView(R.layout.main);<br /> </li><li>                mButton = (Button) findViewById(R.id.button1);<br /> </li><li>                mListView = (ListView) findViewById(R.id.listView1);<br /> </li><li>                mButton.setOnClickListener(new MyOnClickListener());<br /> </li><li>        }<br /> </li><li><br /> </li><li>        private class MyOnClickListener implements OnClickListener {<br /> </li><li>                @Override<br /> </li><li>                public void onClick(View v) {<br /> </li><li>                        try {<br /> </li><li>                                // 得到Json解析成功之后数据<br /> </li><li>                                persons = JsonParse.getListPerson(urlPath);<br /> </li><li>                                List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();<br /> </li><li>                                for (int i = 0; i < persons.size(); i++) {<br /> </li><li>                                        HashMap<String, Object> map = new HashMap<String, Object>();<br /> </li><li>                                        map.put("name", persons.get(i).getName());<br /> </li><li>                                        map.put("address", persons.get(i).getAddress());<br /> </li><li>                                        map.put("age", persons.get(i).getAge());<br /> </li><li>                                        data.add(map);<br /> </li><li>                                }<br /> </li><li>                                //初始化适配器,q且l定数据<br /> </li><li>                                SimpleAdapter _Adapter = new SimpleAdapter(MainActivity.this,<br /> </li><li>                                                data, R.layout.listview_item, new String[] { "name",<br /> </li><li>                                                                "address", "age" }, new int[] { R.id.textView1,<br /> </li><li>                                                                R.id.textView2, R.id.textView3 });<br /> </li><li>                                mListView.setAdapter(_Adapter);<br /> </li><li>                        } catch (Exception e) {<br /> </li><li>                                Toast.makeText(MainActivity.this, "解析p|", 2000).show();<br /> </li><li>                                Log.i(TAG, e.toString());<br /> </li><li><br /> </li><li>                        }<br /> </li><li>                }<br /> </li><li>        }</li></ol></div><em>复制代码</em></div>x服务器端和客L~码介绍Q运行android应用l果截图:<br /> <img _load="1" id="aimg_17782" src="http://www.apkbus.com/data/attachment/forum/201203/15/091351245aazsdda5y5sgq.gif" alt="0_1330067381FcfP.gif" title="0_1330067381FcfP.gif" width="254" /> <br /> <img src="http://www.apkbus.com/static/image/filetype/zip.gif" alt="" border="0" /> <span style="white-space: nowrap" id="attach_17783"> <a target="_blank">Json数据解析服务器端加客L代码.zip</a> <em>(75.08 KB, 下蝲ơ数: 1309)</em> </span> <br /> <br /> <br /> <br /> <div class="wmqeeuq" id="comment_140577"> </div> <dl id="ratelog_140577"><dt> <strong><a title="已有1? 查看全部评分">1</a></strong> <p><a >查看全部评分</a></p> </dt><dd> <ul><li> <p id="rate_140577_9522" mbn"=""><a target="_blank"><img src="http://www.apkbus.com/uc_server/avatar.php?uid=9522&size=small" alt="" /></a></p> <p><a target="_blank">lingdududu</a></p> </li></ul> </dd></dl></div><img src ="http://www.aygfsteel.com/yxj1314520/aggbug/398230.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/yxj1314520/" target="_blank">姚先q?/a> 2013-04-22 19:11 <a href="http://www.aygfsteel.com/yxj1314520/archive/2013/04/22/398230.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>首先客户端从服务器端获取json数据http://www.aygfsteel.com/yxj1314520/archive/2013/04/22/398229.html姚先q?/dc:creator>姚先q?/author>Mon, 22 Apr 2013 11:10:00 GMThttp://www.aygfsteel.com/yxj1314520/archive/2013/04/22/398229.htmlhttp://www.aygfsteel.com/yxj1314520/comments/398229.htmlhttp://www.aygfsteel.com/yxj1314520/archive/2013/04/22/398229.html#Feedback0http://www.aygfsteel.com/yxj1314520/comments/commentRss/398229.htmlhttp://www.aygfsteel.com/yxj1314520/services/trackbacks/398229.html阅读全文

]]>
վ֩ģ壺 | | | Ƽ| | ˮ| ̨| | | ̨| | | | | | | | | | | ̫| | | | ³| ͤ| Ԫ| ׯ| ƽ| | ɣֲ| ޻| | | ֦| ߴ| | | | | ¤|