千家信息网

Android中添加fragment后版本不兼容怎么解决

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容介绍了"Android中添加fragment后版本不兼容怎么解决"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅
千家信息网最后更新 2026年11月04日Android中添加fragment后版本不兼容怎么解决

本篇内容介绍了"Android中添加fragment后版本不兼容怎么解决"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Fragment的产生与介绍

Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视。针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布局以适应平板神马超级大屏的。难道无法做到一个App可以同时适应手机和平板么,当然了,必须有啊。Fragment的出现就是为了解决这样的问题。你可以把Fragment当成Activity的一个界面的一个组成部分,甚至Activity的界面可以完全有不同的Fragment组成,更帅气的是Fragment拥有自己的生命周期和接收、处理用户的事件,这样就不必在Activity写一堆控件的事件处理的代码了。更为重要的是,你可以动态的添加、替换和移除某个Fragment。

昨天学习了下Android的Fragment。按照官网的教程,新建了一个类BlankFragment,继承自Fragment。然后编译的时候就出错了:

Error:Execution failed for task ':app:processDebugManifest'.> Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.0-beta1) from [com.android.support:design:26.0.0-beta1] AndroidManifest.xml:28:13-41  is also present at [com.android.support:support-v4:26.1.0] AndroidManifest.xml:28:13-35 value=(26.1.0).  Suggestion: add 'tools:replace="android:value"' to  element at AndroidManifest.xml:26:9-28:44 to override.

搜了一下,七七八八说什么的都有。最不靠谱的一个就是说什么把manifest文件里的标签从android:name改成class的。看日志明显是和版本有关啊!后来终于找到个和版本兼容有关的解决方案,要在app目录下的build.gradle里添加如下代码才可以:

configurations.all {  resolutionStrategy.eachDependency { DependencyResolveDetails details ->    def requested = details.requested    if (requested.group == 'com.android.support') {      if (!requested.name.startsWith("multidex")) {        details.useVersion '26.0.0-beta1'      }    }  }}

试了一下确实好了。但不能满足于此。

注意到,就在添加的这段代码上面,描述的是工程依赖的库:

dependencies {  implementation fileTree(dir: 'libs', include: ['*.jar'])  implementation 'com.android.support:appcompat-v7:26.0.0-beta1'  implementation 'com.android.support.constraint:constraint-layout:1.0.2'  implementation 'com.android.support:design:26.0.0-beta1'  implementation 'com.android.support:support-v4:26.1.0'  testImplementation 'junit:junit:4.12'  androidTestImplementation 'com.android.support.test:runner:0.5'  androidTestImplementation 'com.android.support.test.espresso:espresso-core:2.2.2'}

而这一行下面有红线:

implementation 'com.android.support:appcompat-v7:26.0.0-beta1'

鼠标指上去提示:

All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 26.1.0, 26.0.0-beta1. Examples include com.android.support:support-compat:26.1.0 and com.android.support:animated-vector-drawable:26.0.0-beta1

这不是说的很明白:所有依赖com.android.support的库必须使用一样的版本!看看Dependency里,com.android.support:appcompat-v7:26.0.0-beta1和com.android.support:support-v4:26.1.0两个版本就是矛盾的啊!看一下git的记录,26.1.0这一行就是新加的,肯定就是新建BlankFragment类的时候AndroidStudio自动添加的。再回头看看出错日志,说的不也是同一个意思?

"Android中添加fragment后版本不兼容怎么解决"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

版本 就是 代码 平板 手机 有关 一行 事件 内容 屏幕 情况 日志 时候 更多 界面 知识 处理 学习 不同 帅气 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 瑰夏咖啡 互联网黑科技 保险科技 互联网保险 上海喔噻互联网科技有限公司 美国互联网黑科技 央行互联网金融科技公司 常德市电业局互联网科技部 华服互联网科技官网 世界互联网科技公司市值排名 苏州五指互联网络科技有限 想开互联网科技公司怎么样 中国互联网公司排名锤子科技 杭州披云加互联网科技有限公司 领航科技大厦互联网公司 互联网科技包装股份有限公司上市 互联网科技对化妆品行业 亚光科技低轨卫星互联网 互联网企业和网络科技有限公司 互联网科技自媒体灵感 互联网科技创业有什么好项目 广州紫鲸互联网科技有限公司 互联网科技金融 美国互联网前沿科技 互联网巨头投资的硬核科技 江苏南京365互联网科技 互联网企业和科技型企业 移动互联网科技公司 乌苏新华互联网科技做什么的 上海创道互联网络科技有限公司 众联互联网络科技
0