调用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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据结构之哈希表(hash)代码

    哈希的关键在于算法,呵呵,我这算法,不说了,见笑了。哈希在内核中用得非常之广,准确来说是链表,下面是一个相对简单的例子,希望能对大家理解hash有些帮助。/************************************************************************************************************** **文

    2022年4月8日
    84
  • U41492 树上数颜色(dsu)「建议收藏」

    U41492 树上数颜色(dsu)「建议收藏」U41492树上数颜色题意:输入n(1e5)n(1e5)n(1e5)表示一棵根为1的树有nnn个节点接下来n−1n-1n−1行每行u,vu,vu,v表示树边接下来一行nnn个数,c1,c2,…,cn(1≤ci≤n)c_1,c_2,\dots,c_n(1\leqc_i\leqn)c1​,c2​,…,cn​(1≤ci​≤n)表示节点颜色接下来m(m≤n)m(m\leqn)m(m≤n)…

    2025年6月15日
    3
  • C语言system的用法「建议收藏」

    C语言system的用法「建议收藏」C语言system的用法system()在头文件stdlib.h中system()是C语言中为了调用windows系统命令来设置。例:system(“cls”);//清屏system(“pause”);//暂停system(“title名字”);//设置窗口名system(“time/T”);//显示当前时间system(“data/T”);//显示当前日期system(“…

    2026年1月17日
    5
  • 常见的测试用例设计方法有哪些呢?「建议收藏」

    常见的测试用例设计方法有哪些呢?「建议收藏」知乎问题:常见的测试用例设计方法有哪些呢?有什么比较好的基础理论书籍推荐吗? [我的回答]2018年8月25日测试用例设计技术和方法,其目的是为了解决测试分析与设计过程中碰到的问题,纯粹的理论只是应用技术和方法的基础,但不是目的。测试用例分析与设计过程,需要我们不断的应用结构化思维、发散性思维和可视化思维,以构建系统化的测试分析与设计框架。 我将2011年写的《软件测试设计…

    2022年6月23日
    26
  • python+PIL实现图片对比

    python+PIL实现图片对比

    2021年5月24日
    127
  • 1.7-工控上位机软件开发平台介绍

    1.7-工控上位机软件开发平台介绍一、前言前面几章一直没有提到上位机的另一个主要使用场合,即“工业上位机软件”。主要是因为本人没有接触过,不敢贸然发表见解类的文章。最近在机缘巧合下,对“工业上位机软件”有了一些初步的了解。在这里和大家分享一下。注意本节的内容还不够专业全面,只适合对“工控软件”进行一个初步的了解。二、工业“自动化”控制系统的组成在工业生产过程中,最重要的是安全,其次是稳定。工业生产环境中可以常见大如“吊车”般的设备、有毒气体、强碱、强酸、几千度的高温、易燃易爆气体、高压水蒸气。所以容不得半点错误,出错就意味着要死人,因

    2022年5月31日
    84

发表回复

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

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