• Android


    Android使用Gradle架构的Android应用,需要对.so库做特殊的处理,因为会找不到,就会导致编译正确,使用错误;常见的使用情况是根据不同的cpu,有不同的库,包括:armeabi,mips,x86等。
    报错:

    1
    java.lang.UnsatisfiedLinkError: Couldn't load weibosdkcore from loader dalvik.system.PathClassLoader[DexPathList[[zip file /data/app/xxx.apk],nativeLibraryDirectories=[/data/app-lib/xxx-2, /vendor/lib, /system/lib]]]: findLibrary returned null


    有两种方法可以解决:

    1. 将“.so”库生成jar

    把jar引入项目即可,需要注意目录的顺序:

    1
    2
    3
    -lib
    --armeabi
    ---xxx.so

    命令:

    1
    jar cvf xxx_cpu.jar ./lib

    再加载到应用中,即可;

    2. 使用gradle配置

    Android{}的范围内,添加:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    //noinspection all
    task copyNativeLibs(type: Copy) {
        // third party lib so
        from(new File(projectDir, 'libs')) { include 'armeabi/*.so' }
        into new File(buildDir, 'native-libs')
    }
     
    tasks.withType(JavaCompile) {
        compileTask ->
            //noinspection all
            compileTask.dependsOn copyNativeLibs
    }
     
    //noinspection all
    tasks.withType(com.android.build.gradle.tasks.PackageApplication) {
        pkgTask ->
            pkgTask.jniFolders = new HashSet<file>()
            pkgTask.jniFolders.add(new File(buildDir, 'native-libs'))
    }</file>


    即可,//noinspection all可以去除warning

    结伴旅游,一个免费的交友网站:www.jieberu.com

    推推族,免费得门票,游景区:www.tuituizu.com

  • 相关阅读:
    spring整合Quartz
    Quartz基本使用
    hibernate框架基础描述
    POI技术实现对excel的导出
    CG-CTF CRYPTO部分wp
    CG-CTF web部分wp
    快速排序算法的c++实现
    tornado当用户输入的URL无效时转入设定的页面
    sicily 4699. 简单哈希
    unbutu下Io language的解释器安装
  • 原文地址:https://www.cnblogs.com/rabbit-bunny/p/4200373.html
Copyright © 2020-2023  润新知