android端如何调用第三方so文件里面的方法

十月yumian 2016-09-21 05:29:10
我现在需要接入一个厂家的sdk,但是该sdk不支持android直接接入,所有的方法都封装在so文件里面,我现在想用jni在android端调用到so文件里面的方法,我该怎么做呢,对于jni我不是很熟许,还请大神帮忙,步骤最好详细一些,谢谢啦!
...全文
1534 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
忘不川 2017-09-19
  • 打赏
  • 举报
回复
写个module,包名写so内部的包名,然后再module 中写加载
头发还没秃a 2016-09-22
  • 打赏
  • 举报
回复
在你的工程目录main文件夹下面创建jniLibs文件夹,把JNI编译出来的.so文件复制到jniLibs文件夹下面,在你的build文件里面添加

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

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.0"

    defaultConfig {
        applicationId "com.szfore.nwmlearning"
        minSdkVersion 11
        targetSdkVersion 22
        versionCode 4
        versionName "1.0.3"

        ndk {
           ......
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
}
qq840727854 2016-09-22
  • 打赏
  • 举报
回复
自己 写个 jni 然后 引入 他们的 h文件 试试 然后 在java代码中 调用 自己写的 jni
qq840727854 2016-09-22
  • 打赏
  • 举报
回复
当然 不行咯 人家 写的 so里面的 方法的名字都是以人家 运行时候的 那个类的 包名+类名+方法名 定义的 你在自己的 类里面 都 对应不上了 ,当然 调用不了.
十月yumian 2016-09-22
  • 打赏
  • 举报
回复
直接类里面静态代码调用不行
qwerwqily 2016-09-21
  • 打赏
  • 举报
回复
写一个类,类里面的静态代码块load这些so文件即可。

80,348

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧