前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Android Studio开发实战 从零基础到App上线(第2版)》常见问题解答

《Android Studio开发实战 从零基础到App上线(第2版)》常见问题解答

作者头像
aqi00
发布2019-03-04 10:57:50
9390
发布2019-03-04 10:57:50
举报
文章被收录于专栏:老欧说安卓老欧说安卓

下面是第二版读者较经常提出的问题,现统一整理回复如下:

1、第1章的SVN仓库地址

问题:第17页“1.5.2 安装SVN工具”这节里面提到的SVN仓库地址要填什么? 回答:SVN仓库地址指的是SVN服务器地址,如果你们单位有专人负责svn代码管理,可向他(svn管理员)咨询这个svn地址。如果你的代码只在自己电脑运行,不需要提交给服务器备份,那么建议略过svn这部分。

2、第2章的跑马灯文字滚不起来

问题:第34页“2.3.1 文本视图TextView”中的“1. 跑马灯效果”,按照示例XML编写了布局文件,结果跑马灯文字还是跑不起来,点击也不管用。 回答:该例子除了xml格式的布局文件,还需java代码配合才行,搭配用的java文件参见本书附录源码junior模块里的MarqueeActivity.java,完整的文件路径见下:         junior\src\main\java\com\example\junior\MarqueeActivity.java 另外,如果发现TextView被点击后,跑马灯不会自动暂停的话,需要开发者给TextView注册一个点击监听器,然后重写点击监听器的onClick方法,在该方法中编写暂停跑马灯的处理代码。具体代码参见刚才说的MarqueeActivity.java。

3、第10章根据经纬度获取不到地址

问题:第430页“10.2.3 HTTP接口调用”中的实战小项目,根据经纬度调用Google Map获取不到地址信息。 回答:谷歌地图从2019年开始必须传入密钥才能根据经纬度获取地址,所以现在无法正常调用Google Map的地址查询接口了。解决办法是把查询接口改成国内的天地图,涉及到network模块的GetAddressTask.java,有三处地方要改: 第一处修改mAddressUrl,代码示例如下:

代码语言:javascript
复制
        private String mAddressUrl = "http://api.tianditu.gov.cn/geocoder?postStr={'lon':%f,'lat':%f,'ver':1}&type=geocode&tk=145897399844a50e3de2309513c8df4b";

第二处doInBackground方法里面拼接url的代码改成下面这样:

代码语言:javascript
复制
        String url = String.format(mAddressUrl, location.getLongitude(), location.getLatitude());

第三处从json串解析地址信息的代码修改如下:

代码语言:javascript
复制
                JSONObject obj = new JSONObject(resp_data.content);
                JSONObject result = obj.getJSONObject("result");
                address = result.getString("formatted_address");

已经改好的GetAddressTask.java代码例子见如下页面:         https://github.com/aqi00/android2/blob/master/network/src/main/java/com/example/network/task/GetAddressTask.java

4、第10章的仿QQ聊天,客户端与服务端无法通信

回答:网络部分的附录代码分成两块,客户端代码在network模块,服务端代码包括NetServer工程和SocketServer工程,其中NetServer工程承担HTTP服务器的角色,SocketServer承担Socket服务器的角色,这两种服务器都要在电脑上启动。本书代码在多部手机上自测通过,代码的业务逻辑没问题,无法通信的原因可能有以下几点: 1、network模块中ClientThread.java里面的SOCKET_IP没有改成Socket服务器的ip,如果SocketServer工程在笔记本电脑上启动的话,SOCKET_IP就填笔记本电脑的无线ip 2、network模块中ClientThread.java里面REQUEST_URL没有改成HTTP服务器的ip,如果NetServer工程在笔记本电脑上启动的话,REQUEST_URL里的ip就填笔记本电脑的无线ip 3、network模块中QueryFriendTask.java里面mQueryUrl的"/queryFriend"被改成大写的"/QueryFriend"了,注意这里的q是小写的。 特别注意,在cmd窗口下,使用命令“ipconfig /all”要找的是笔记本电脑的无线ip,不是找网线的有线ip。如果在笔记本电脑上启动模拟器充当客户端,代码里的服务器ip也必须填笔记本电脑的无线ip,不能填127.0.0.1

更多问题可加入QQ群进行咨询,群号是493199768

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年02月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、第1章的SVN仓库地址
  • 2、第2章的跑马灯文字滚不起来
  • 3、第10章根据经纬度获取不到地址
  • 4、第10章的仿QQ聊天,客户端与服务端无法通信
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档