Android 项目拉取运行、aar打包集成问题处理合集

一 概要

项目拉取运行、aar打包提供给使用方时,可能出现各种问题。譬如:接受方集成后发现编译报错。一般情况下主要有:
1.构建、kotlin语言、插件版本不一致;
2.相应的依赖版本不一致;
3. so库的ndk不一致或者不全;(搞清楚接收方的ndk abiFilters的范围)

解决思路也是:接受方使用一致的版本(或者引用公共gradle文件依赖,或者手动改为一致),或者exclude掉冲突组件,而这需要仔细看build的警告、错误日志以及有去排除可能错误的手段。

二 案例

1.More than one file was found with OS independent path ‘META-INF/okio.kotlin_module’

这个错误发生在升级了本地组件依赖(okhttp相关)-进行打包aar时。很明显是由于本地依赖升级发生导致。

1.本地组件依赖既然是需要升级,那么回退到正常运行的版本就没有意义,只能从其他方面着手。
2.其他手段
  • 清除缓存clean/rebuild/clear validate cache***——无效

  • 找到该重复文件,并进行删除——无效
    这里说一下定位手段:
    a.double shift按键搜索该文件,点击打开
    b.ctrl+鼠标左键点击文件标签即可看到该文件的树级目录(mac 是command+鼠标左键点击)。或者切换Project工程目录,点击定位即可展开目录树。
    c.可以从父级文件目录删除开始
    删除无效的原因在于,这是build时产生的,删除后仍旧会重生。

  • 更改gradle版本——有效

  • build.gradle(project)中 提升class path 'com.android.tools.build:gradle:3.2.1'的版本,譬如提升到3.6.0之类。

  • gradle-wrapper-.properties 提升distributionUrl 的gradle版本。

2. DSL element ‘android.dataBinding.enabled’ is obsolete and has been replaced with ‘android.buildFeatures.dataBinding’. It will be removed in version 7.0 of the Android Gradle plugin.

dataBinding {
        enabled true
    }
  //所有library含project对应的build.gradle文件中,上述的语句替换如下(因为gradle插件版本不匹配了)
  buildFeatures {
        dataBinding true
    }

你可能感兴趣的:(Android问题解决方案,小技巧,android)