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


相关推荐

  • Mac下mysql不能远程访问问题

    Mac下mysql不能远程访问问题

    2021年5月14日
    144
  • strlen和sizeof的差别

    strlen和sizeof的差别

    2021年11月24日
    48
  • Java Random.nextInt()方法原理解析[通俗易懂]

    Java Random.nextInt()方法原理解析[通俗易懂]JavaRandom.nextInt()方法原理解析主要介绍了JavaRandom.nextInt()方法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下licintnextInt(intn)该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。关于Randomr=newRandom(47)中47的意思今天看Java编程思想的时候看到了一段这样的代码:Rand

    2022年7月21日
    14
  • android自动化测试框架_GMS测试

    android自动化测试框架_GMS测试GMSP的测试已经开始一段时间了,这里记录一下跟O的不同之处,资料主要来自MTK官网。一、Case数量增加(以Pgo项目为例,64bit项目double)a、CTS测试增加8万条,module增至320b、增加CTS-INSTANT测试项目,module48,1.3万条(13338)、64bit13338,以实际为准;c、VTS测试增加约2…

    2025年9月18日
    4
  • List去除重复数据的五种方式

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:多纤果冻 blog.csdn.net/qq_37939251/article/details/90713643…

    2021年6月27日
    76
  • Object转String的几种方法

    Object转String的几种方法1.object.toString()方法   这种方法要注意的是object不能为null,否则会报NullPointException,一般别用这种方法。2.String.valueOf(object)方法   这种方法不必担心object为null的问题,若为null,会将其转换为"null"字符串,而不是null。这一点要特别注意。"null"和null不是一个概念。3.(…

    2022年6月11日
    48

发表回复

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

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