美文网首页
couldn't find "XXX.so" 文件解决经验

couldn't find "XXX.so" 文件解决经验

作者: T_Terry | 来源:发表于2020-08-23 14:22 被阅读0次

    今天开启新的项目,把公共模块移植过来后发现一直提示couldn't find "XXX.so"。

    ??好家伙,好久没这打交道了,让我想想怎么回事。

    首先,这个时候,大家先确定,自己so文件放的位置对不对,android studio默认是去jniLibs文件夹去找so文件的。

    /src/main/jniLibs 注意是在 main下面。

    如果位置正确的话,检查一下model下的build.gradle中是否有以下代码:

    sourceSets { main { jniLibs.srcDirs = ['libs'] }}

    这句是改变.so的路径到libs下。如果有的话。请删除或者把.so文件移动到libs下。

    但是依然有错呢。请检查提示,没有找到文件前面的路径,如果是什么armeabi,armeabi-v7a,x86等等之类的路径。说明机器需要这个路径下的.so文件,你建立了文件夹又没有提供对应的版本。

    1.你可以复制其他的文件内的.SO到缺失路径下。

    2.在工程中配置项目支持的类型。

    android{

    ndk{

        abiFilters"armeabi","armeabi-v7a","x86"

    }

    }

    样只会在指定的类型内选择.so文件

    3.android {

    // rest of your app's logic

    splits {

    abi {

    enable true

    reset()

    include 'x86', 'x86_64',

    'arm64-v8a', 'armeabi-v7a', 'armeabi'

    universalApk false

    }

    }

    }

    打包的时候分包

    enable: 是否启用ABI拆分机制

    reset():重置ABI列表为只空字符串,一半和include、exclude一起使用,如果要用必须在include和exclude前面

    include:指明要包含哪些ABI,目前使用最多的伪64位处理器的arm64-v8a,其次才是armeabi-v7a

    exclude:默认包含下所有ABI,可以移除一些ABI

    universalApk:是否打包一个通用版本,包含所有的ABI,默认值为 false

    ————————————————————

    但是呢。我都没解决。什么鬼。后来通过各种排除发现,降低classpath'com.android.tools.build:gradle:3.6.4'

    到我原项目classpath'com.android.tools.build:gradle:3.5.1' 之后问题解决。至于原因。空闲的时候再研究

    相关文章

      网友评论

          本文标题:couldn't find "XXX.so" 文件解决经验

          本文链接:https://www.haomeiwen.com/subject/zswijktx.html