安卓期末大作业总结
以下为我在安卓结课作业中遇到的问题,每个问题都困扰了我很久,写此博客记录。
androidx和依赖库的冲突
下图为我在进行大作业时所选用的SDK版本与Build Tools版本和AndroidStudio(后简称为AS)版本
可能在之前的作业中,AS的版本对我们的课件程序影响并不多,影响更多的是SDK版本的不同。但在这次大作业中,我们需要引入【android-support-v4.jar】和【BaiduLBS_Android.jar】两个jar包作为依赖库。当你的AS版本在3.5版本之上,你的默认集成库会变成androidX,而这恰恰会和上面的support依赖库起冲突。起冲突后,就算是按照老师的步骤一步步来的,最后的运行结果会是这样的。
在这里先用代码说下为什么一步步照着来也会错,原因如图。
上图是我将support的jar包设定为依赖库后自动生成的代码,再对照老师的视频,视频中生成的代码如下图。
可以看到两段代码是不一样的,这也就导致了为什么一步步来也会被报错。那么接下来就是解决问题,说实话一开始看到一长片红而且每行开头都一样我觉得没什么,肯定是解决一个问题全部红都消失,于是我兴冲冲地开始面向csdn程序设计,得到了解决方案。
- 把support依赖库转换为androidx
- 把androidx依赖库转换为support
两种办法第一种是一次性全部把support转为androidx,第二种是一个个找冲突的地方,把andoridx变为support,而这一个个就是上面报错的一行行,意思就是要改那么多个,于是果断选择方案1,但是我方案1解决出来的结果是这样的。
当然现在做完这份作业再码这份博客的时候想想,可能是我的操作有误才导致这个结果,不过当时看到这个结果的时候我心态是崩的,已经不打算借助工程文件来做这份作业了,于是开始查阅资料和视频,准备自己重新码一份可以绕开依赖库的作业。
AVD连网问题
在期末大作业之前的工程文件都是不需要联网就能运行的,所以一直对AVD的联网没有概念,但当我码完初步的代码运行时,我得到的结果是这样的。
这里可以看到右上角的时间,当时写到快天亮以为可以睡了结果显示不出地图,于是又挣扎了好久导致睡的太晚第二天早上数学课错过签到:(
那么经过一番查阅,我很快地发现了问题,是AVD没有联网的问题,找到了问题的所在,就开始想办法去解决它,让我没想到的是,这一解决就解决了整整一天。
解决方案
- 参考链接:https://blog.csdn.net/louislrt/article/details/81514579
这个链接中的方法是在cmd中使用adb shell命令,再使用getprop命令,再写setprop net.dns1 xxx.xxx.x.x 来更改AVD的DNS,但照着他的方法操作后,我得到的结果是这样的。