安卓项目升级sdk和第三方库遇到的问题及解决方案

有时候一些项目进行维护的时候需要进行版本升级,当然第三方库肯定要升级,比如百度地图,alipay,sharesdk,蒲公英,讯飞语音sdk等。如果在改变sdkversion后构建Android Studio项目的时候,运行发现,出现没找到资源的错误!找不到com.android.support/appcompat-v4/24.0.1/res/values-v24/values-v24.xml出现这个问题之后尝试将compileSdkVersion设为23(如果sdk里面没有下载API 23的,则需要下载),问题解决!

很多时候会忘记几个Version之间的关系。现在罗列一下以免下次忘记:

1、compileSdkVersion 编译版本,意思就是当为23时,则andorid studio编译的时候用的是sdk里的api-23的版本,里面的函数会用到最新的,一些淘汰的API不会再调用,为此很多时候会出现无法兼容你引入的第三方老库的问题;老项目会用到pulltoRefshlib的库,里面的函数就有不兼容6.0的问题。会报出Floatmath无法找到对应的方法的错误;

解决办法:Android6.0使用 Math.floor 代替 FloatMath.floor 即可;

2、minSdkVersion兼容的最低版本,一般我都设置为17。谁要是用安卓版本4.2一下的做测试的我就想和他聊聊了。版本4.2的手机还能叫手机么。

3、targetSdkVersion目标sdk,targetSdkVersion这个属性是在程序运行时期起作用的,系统根据这个属性决定要不要以兼容模式运行这个程序。一般设置和compileSdkVersion版本一样即可。这个值说直白一点就是当运行app的机器的安卓版本高于你app的编译版本的时候。这个属性通知系统,你已经针对这个指定的目标版本测试过你的程序,系统不必再使用兼容模式来让你的应用程序向前兼容这个目标版本。就是禁用系统的兼容模式。

4、buildToolsVersion这个值是构建工具的版本,随便吧。高点没问题。

好了,分析完上面四个值,现在该具体到更改了这些值之后带来的错误该如何解决的问题了。

Error:(5, 30) java: 程序包org.apache.http.client不存在  

安卓项目升级sdk和第三方库遇到的问题及解决方案_第1张图片

加上 useLibrary 'org.apache.http.legacy' 这一句就行了,位置放哪参考截图。还有上面提到的资源文件不存在的错误,以及6.0以后的函数错误。

具体来说还有一个比较常见的错误就是style.xml里面的错误,因为随着安卓版本的迭代,style在各版本也各不相同,关于style的错误出现后,要根据版本具体问题具体分析,网上查一下就能解决错误,不再多做赘述。

你可能感兴趣的:(安卓学习踩坑记录)