调用so库文件以及里面的方法「建议收藏」

调用so库文件以及里面的方法「建议收藏」之前文章写过一篇JNI生成so库文件 并调用里面的方法手把手教你—JNI的实现实际开发中 so库是别人给你的,不是你自己写的没所以就要用别人的so库文件。有很多情况,有一种是比较简单的:既有so库文件又有对应的jar包,这样的话 直接就可以调用里面的方法了。第二种比较坑爹,限制也比较多,所以现在就主要研究一下第二种吧(只有so库 其他什么都没有)第一

大家好,又见面了,我是你们的朋友全栈君。

之前文章写过一篇JNI生成so库文件   并调用里面的方法

手把手教你—JNI的实现

实际开发中  so库是别人给你的,不是你自己写的没所以就要用别人的so库文件。

有很多情况,有一种是比较简单的:既有so库文件又有对应的jar包,这样的话  直接就可以调用里面的方法了。

第二种比较坑爹,限制也比较多,所以现在就主要研究一下 第二种吧(只有so库  其他什么都没有)

第一步:

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

把这个添加到build gradle (app)  里面  (abdroid 下)

整体的代码如下:

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "com.example.administrator.hongyangzzzb"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

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

}

第二步:

工作区间切换到Project,在libs里面 把之前的so库文件添加进去,如图:

调用so库文件以及里面的方法「建议收藏」

然后把同样的东西  在src/main 下新建文件夹jniLibs  粘贴到里面,如图:

调用so库文件以及里面的方法「建议收藏」

第三步: 新建JNIUtils 类

这个就有点麻烦了,有一些要求在里面,因为我之前的调用C的方法的那个类名字加JNIUtils 多以这个类也必须交这个,名字不一样就报错,而且包名也必须一致,修改包名下一篇再说(凑篇幅),放改好包名就会使这样(因为上一个的包名是 hongyangzzz):

调用so库文件以及里面的方法「建议收藏」

里面的是:

public class JNIUtils {

    static {
        System.loadLibrary("huazict");
    }

    public native String getString();


}

然后在MainActivity调用就行了:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        JNIUtils j = new JNIUtils();

        Toast.makeText(this, j.getString()+"123", Toast.LENGTH_SHORT).show();



    }
}

———————————-———————-———————-———————-

下面的会写一篇专门关于报错的,,,,。。今天没时间了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148960.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python——初识python(安装pycharm和ipython)

    python——初识python(安装pycharm和ipython)Python之编译安装三部曲编译安装三部曲:configure   编译make    安装makeinstall  安装成包解压压缩包tarzxfPython-3.6.4.tgz-C/opt/安装编译过程需要的依赖性(进入到安装包路径下)cd/opt/cdPython-3.6.4/yuminstallgcc-y安装yum…

    2022年8月26日
    3
  • hesse矩阵和jacobi矩阵_安索夫矩阵和波士顿矩阵区别

    hesse矩阵和jacobi矩阵_安索夫矩阵和波士顿矩阵区别转载自:http://jacoxu.com/jacobian%E7%9F%A9%E9%98%B5%E5%92%8Chessian%E7%9F%A9%E9%98%B5/在网上看到的一篇不错的关于雅克比

    2022年8月3日
    6
  • activiti5.22 springboot 流程引擎 实战全过程

    activiti5.22 springboot 流程引擎 实战全过程一.背景现在很多项目流程上比较复杂,业务上不复杂,对于这种项目,引入流程引擎会比较合适,流程有流程引擎去做管理,让设计更合理,开发更简单。市面上有很多款流程引擎,本人选用了使用率比较广的流程引擎activiti。activiti现在最高版本已经到7,springboot最高版本是6,由于网络上5.22版本资料最多,所以选用了5.22版本作为项目集成。二.activi…

    2022年10月20日
    3
  • java大一期末试卷含答案

    java大一期末试卷含答案答案是自己写的,不敢保证全对若有不正之处,请多多谅解并欢迎指正。一、单项选择题1.公有类型常量定义(publicstaticfinal三个关键字的含义)。访问控制符public能被所有的类访问static静态的被static修饰的变量为类变量/静态变量。静态变量又称为类的成员变量,在类中是全局变量,可以被类中的所有方法调用。final最终的被final修饰的变量为常…

    2022年7月13日
    15
  • 2019 最新 Kali2.0可用国内源更新sources.list

    2019 最新 Kali2.0可用国内源更新sources.listleafpad/etc/apt/sources.list#中科大debhttp://mirrors.ustc.edu.cn/kalikali-rollingmainnon-freecontribdeb-srchttp://mirrors.ustc.edu.cn/kalikali-rollingmainnon-freecontrib#阿里云debh…

    2022年5月8日
    58
  • idea 最新激活码 2022(JetBrains全家桶)2022.01.19

    (idea 最新激活码 2022)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~0H…

    2022年3月31日
    135

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号