解决 Android 升级 SDK API 27 过程中遇到的问题

简介:       小菜今天升级适配 SDK-API 27,可谓艰难险阻,真的好磨人,记录一下遇到的两个比较重要的问题,希望各位不会掉坑。问题一 Could not find common.

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


问题一 Could not find common.jar

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


    问题一.png
  2. 在网页中打开链接,却是 404;


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

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

    修改前 build.gradle

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


    解决后 build.gradle

问题二 Only fullscreen opaque activities can request orientation

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


    问题二.png
  2. 小菜按字面意思理解的是,只有占据整个屏幕的 Activity 才可以设置横竖屏,半透明/对话框等不可设置横竖屏,当然小菜用到的侧拉页面也是不可以;


    源码
  3. 小菜首先把 AndroidManifest.xml 中注册的 Activity 均去掉该属性 android:screenOrientation="portrait"

  4. 为了横竖屏的切换,小菜添加了一个 values-26 的文件夹,存放针对 Android8.0 以上手机的 style.xml,将 android:windowIsTranslucent 改为 false
    <item name="android:windowIsTranslucent">false</item> 并加入 <item name="android:windowDisablePreview">true</item>,如下:


    values-26.png
<style name="TopicDetailTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowAnimationStyle">@style/AnimationThemeEpager</item>
    <item name="android:windowIsTranslucent">false</item>
    <item name="android:windowDisablePreview">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">false</item>
    <item name="android:windowTranslucentStatus">true</item>
</style>
  1. 以上,就解决掉进入程序闪退,和横竖屏正常切换的问题了。但是如果有需求固定横屏或竖屏呢,很简单,在 Java/Kotlin 代码的 onCreate 中设置 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    即可,亲测可用。

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


      以下是小菜的公众号,欢迎闲来吐槽哦~


小菜公众号
目录
相关文章
|
5月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
151 0
|
2月前
|
Java Linux API
Android SDK
【10月更文挑战第21天】
124 1
|
3月前
|
程序员 开发工具 Android开发
Android|使用阿里云推流 SDK 实现双路推流不同画面
本文记录了一种使用没有原生支持多路推流的阿里云推流 Android SDK,实现同时推送两路不同画面的流的方法。
78 7
|
3月前
|
JavaScript API
|
5月前
|
API 开发者 Java
API 版本控制不再难!Spring 框架带你玩转多样化的版本管理策略,轻松应对升级挑战!
【8月更文挑战第31天】在开发RESTful服务时,为解决向后兼容性问题,常需进行API版本控制。本文以Spring框架为例,探讨四种版本控制策略:URL版本控制、请求头版本控制、查询参数版本控制及媒体类型版本控制,并提供示例代码。此外,还介绍了通过自定义注解与过滤器实现更灵活的版本控制方案,帮助开发者根据项目需求选择最适合的方法,确保API演化的管理和客户端使用的稳定与兼容。
250 0
|
8月前
|
JavaScript Java Maven
云效产品使用常见问题之android sdk 构建出aar后,上传到私有maven仓库失败如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
5月前
|
开发工具 Android开发
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
215 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
5月前
|
Dart 开发工具 Android开发
Android Studio导入Flutter项目提示Dart SDK is not configured
Android Studio导入Flutter项目提示Dart SDK is not configured
509 4
|
5月前
|
开发工具 Android开发
Flutter: Android SDK not found at this location,Android Studio not found at xxx
Flutter: Android SDK not found at this location,Android Studio not found at xxx
186 2

热门文章

最新文章