升级android sdk26,您在 Android SDK-API 27 升级时遇到问题了吗?

和尚我今天升级适配 SDK-API 27,可谓艰难险阻,真的好磨人,记录一下遇到的两个比较重要的问题,希望各位不会掉坑。

问题一 Could not find common.jar

1.  和尚我是由 26.1.0 准备升级到 27.1.1,首先是更换 SDK-Version 等,然后下载 SDK,一切正常,等到下载完 sync now 同步时,却报了如下错误:

8d16f8b9b9fdd87e2fc29ee07a385ab9.png

2.  在网页中打开链接,却是 404;

64272200475099588194ea7234c1fa4f.png

3.  查阅网上资料,说涉及到的版本不要用 27.+ 之类的,应替换为准确的版本号,但是和尚我用的是明确的 27.1.1,该方案失败;

4.  网上部分大神说,需要在 build.gradle 中添加 maven { url "https://maven.google.com" },但是和尚我也都有,并不能直接解决问题,如图:

cf3a0b0bb00b8bd288ff27d180d14a53.png

5.  之后查阅资料发现在 build.gradle 中 maven 顺序有关系,因为 jcenter 已经删除 android.arch.core 库,需要从 google.com 中下载,和尚我调整顺序,rebuild 之后问题解决。

问题二 Only fullscreen opaque activities can request orientation

1.  和尚我好不容易解决掉问题一,紧接着进入程序各种闪退,如图:

d67d2cec7c8e3e671e88a96ac2beb77d.png

2.  和尚我按字面意思理解的是,只有占据整个屏幕的 Activity 才可以设置横竖屏,半透明/对话框等不可设置横竖屏,当然和尚我用到的侧拉页面也是不可以,从网上查看一下源码,如图;

fc3979114d553fd4a9630bf91d46bcc6.png

3.  和尚我首先把 AndroidManifest.xml 中注册的 Activity 均去掉该属性android:screenOrientation="portrait";

4.  为了横竖屏的切换,和尚我添加了一个 values-26 的文件夹,存放针对 Android8.0 以上手机的 style.xml,将 android:windowIsTranslucent 属性改为 false 并加入 android:windowDisablePreview 属性为 true,如下:

782a69ff2c666597cf83bf59e7a97bbf.png

false

true

false

false

true

false

true

5.  以上,就解决掉进入程序闪退,和横竖屏正常切换的问题了。但是如果有需求固定横屏或竖屏呢,很简单,在 Java/Kotlin 代码的 onCreate 中设置 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 即可,亲测可用。

Tips: Android8.0 的适配还会涉及很多东西,需要不断测试研究,并及时处理。

以下是和尚我的公众号,欢迎闲来吐槽哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值