Android studio插件,检查依赖的so是否支持64位(或者其他的abi)

Posted kuangxuefeng丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android studio插件,检查依赖的so是否支持64位(或者其他的abi)相关的知识,希望对你有一定的参考价值。

介绍

android studio插件,检查依赖的so是否支持64位(或者其他的abi)

源码链接

软件架构

apk构建的过程中,会执行merge[BuildVariants]NativeLibs这个task去合并所有的依赖,包括lib下的依赖以及远程依赖,通过遍历这个task的输入文件,读取对应文件夹下的so文件并比较;

并且,通过dependencyInsight,我们可以查找到这个so文件最顶层的依赖。

安装教程

  1. 在根目录下的build.gradle中添加
    repositories 
        maven url 'https://gitee.com/kuangxuefeng/MeavenPrivate/raw/dev20200727/CheckApkSoPlugin/'
    
    
    dependencies 
        classpath "com.kxf.checkapksoplugin:CheckApkSoPlugin:0.0.1.alpha"
    
    
    allprojects 
        repositories 
            maven url 'https://gitee.com/kuangxuefeng/MeavenPrivate/raw/dev20200727/CheckApkSoPlugin/'
        
    
    
  2. 在moudle的build.gradle中添加
    apply plugin: 'com.kxf.checkapksoplugin.CheckApkSoPlugin'
    
  3. 在moudle的build.gradle中添加配置参数(可选)
    //可配置的
    kxf_CheckApkSoPlugin
        //检查的abi类型,默认为全部
        ABI_TYPES = ["armeabi-v7a", "arm64-v8a"]
    
    

使用说明

  1. 在task列表中找到CheckApkSoPlugin,属于分组kxf,找到后执行

  2. 看见success后表示执行成功

    > Task :testcheckso:CheckApkSoPlugin
    kxf => CheckApkSoPlugin start.
    
    ==============success==============
    so file in armeabi-v7a but not in arm64-v8a:
    (pomName=jetified-soaartest-1.0.0.1, soName=libsoaartest.so, soPath=/Users/xuefeng.kuang/.gradle/caches/transforms-3/075e2ee49f1b20eba629c06676b97cd4/transformed/jetified-soaartest-1.0.0.1/jni/armeabi-v7a/libsoaartest.so, dependencyInfo=null)
    (pomName=jetified-solibtest-1.0.0.1, soName=libsolibtest.so, soPath=/Users/xuefeng.kuang/.gradle/caches/transforms-3/f68aa37fa76b1b94707c44c2209eab12/transformed/jetified-solibtest-1.0.0.1/jni/armeabi-v7a/libsolibtest.so, dependencyInfo=com.kxf.aarssotest:aarssotest:1.0.0.1)
    
    so file in arm64-v8a but not in armeabi-v7a:
    
    
    Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
    Use '--warning-mode all' to show the individual deprecation warnings.
    See https://docs.gradle.org/6.8/userguide/command_line_interface.html#sec:command_line_warnings
    
    BUILD SUCCESSFUL in 32s
    5 actionable tasks: 2 executed, 3 up-to-date
    10:35:14: Task execution finished 'CheckApkSoPlugin'.
    
    
  3. 执行log中会输出缺少的so文件,dependencyInfo为依赖关系

特技

qq联系:1024883177

以上是关于Android studio插件,检查依赖的so是否支持64位(或者其他的abi)的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android Gradle中添加原生so文件依赖

依赖检查的插件

依赖检查的插件

解决 Android Studio 提交不了*.so文件到svn

android studio添加jar包及so文件问题

android studio 怎么将so打包成jar