这些目录下,每一个下面都会有so文件。区别在于不一样设备,会调用不一样包下面的文件。(这点我也不清楚,不浅学误人)

2、新建项目,将armeabi连同下面的so文件,放入项目的libs下。

java代码中调用。你能够把代码写成这样:

package com.example.administrator.myapplication;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.widget.TextView;

public class MainActivity2 extends AppCompatActivity {

private TextView tv;

static {

System.loadLibrary("native-lib");

}

public native String stringFromJNI();

public native int getNum();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tv =(TextView)findViewById(R.id.textView);

// MainActivity mc = new MainActivity();

// mc.put();

tv.setText(""+getNum());

}

}运行看看,结果发现:

java.lang.UnsatisfiedLinkError: No implementation found for....

我完了一早上看这是个啥问题,最后才得出结论,

调用这个方法,包名、类名必需要和C代码中方法一致,不然调不到。

因此,我新建了个包,建了个类。在另一个类中调用。

package com.example.administrator.myapplication;

/**

* Created by fireMorning on 2017/3/2 0002.

*/

public class MainActivity {

public native String stringFromJNI();

public native int getNum();

public void put(){

System.out.println("firefox++++++++++++"+getNum());

}

public String get(){

return stringFromJNI();

}

}固然,别好奇我这个命名,只是为了说明问题。这不是activity,而是普通类。而在activity中,

package com.example.administrator.myapplication;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.widget.TextView;

public class MainActivity2 extends AppCompatActivity {

private TextView tv;

static {

System.loadLibrary("native-lib");

}

public native String stringFromJNI();

public native int getNum();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tv =(TextView)findViewById(R.id.textView);

MainActivity mc = new MainActivity();

mc.put();

tv.setText(""+mc.get());

}

}

另外,public native  String stringFromJNI();

public native int getNum();

这两句代码报红,别理他。只要你本身确认无误就能够直接编译了。

附上代码:点击下载

(真很差意思,这么个东西,竟然要1分,由于我实在没下载币了)

android studio jni so,Android studio JNI 制做SO文件,在其余项目中调用相关推荐

  1. visual studio 2017 创建 android 本地共享库(.so) 并从 C# android 项目中调用

    Developing Xamarin Android Native Applications ★★★★★ ★★★★ ★★★ ★★ ★ February 23, 2015 by Ankit Asthan ...

  2. 在Android项目中调用FFmpeg命令

    概述 FFmpeg,命令行非常强大.在PC机上,调用一行FFmpeg命令,就可以对视频文件进行剪切.合并.转码等功能.本文将介绍如何在Android中调用FFmpeg命令行. 编译 前面已经有两篇文章 ...

  3. Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图

    2019独角兽企业重金招聘Python工程师标准>>> 最近自己想研究下地图,本来想研究google Map,但是申请API key比较坑爹,于是从百度地图入手,其实他们的用法都差不 ...

  4. Android之项目中调用已有.so库

    注意该.so库指的是android平台的,非一般linux.unix平台: 1.现有库libcom_ycan_testLib.so 2.新建android项目TestLib2 3.添加新类: 类名:t ...

  5. Android 将MAP格式数据写入XML 将XMP文件读MAP数据格式中

    其中涉及的部分类可以自行查询,如:AtomicFile.java   FastXmlSerializer.java private static final String APPCONFIG_FILE ...

  6. 在Android Studio中搜索整个项目中所有出现的字符串

    本文翻译自:Search all the occurrences of a string in the entire project in Android Studio I've just start ...

  7. android 自定义模板下载,android studio 自定义模板

    由于项目用上了 mvp 架构,基本上一个页面就至少需要新创建6个类,分别是 model view presenter 的接口以及其对应的实现类,再加上使用 dagger 的话就要更多了,所以这时候 a ...

  8. android studio 库工程,Android Studio 添加已有工程方法

    准备工作: 修改 excluded-paths和android.iml,修改内容详见下图.(目的:过滤和优先在sourcefolder查找,若没有再到JAR包中查找) BorqsUI/LINUX/an ...

  9. android 动态定制模板,android studio 自定义模板

    由于项目用上了 mvp 架构,基本上一个页面就至少需要新创建6个类,分别是 model view presenter 的接口以及其对应的实现类,再加上使用 dagger 的话就要更多了,所以这时候 a ...

最新文章

  1. [Unity3D]Unity3D连衣裙实现游戏开发系统
  2. ESP32 官方文档(三)分区表
  3. jquery mobile自定义图标实现方法
  4. android os于8.1区别,Android-x86 8.1-rc2发布 运行于x86 PC上的安卓OS
  5. android线程控制UI更新(Handler 、post()、postDelayed()、postAtTime)
  6. 27 个问题,告诉你Python为什么这么设计
  7. 今日代码(200708)--缺失值处理
  8. Asp.net报表制作 OpenFlashChart免费图表组件
  9. @Configuration和@Bean注解详解
  10. python获取计算机信息系统数据罪_使用 python 收集获取 Linux 系统主机信息
  11. log4j的8个日志级别(OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL)
  12. 大数据实战之环境搭建(十)
  13. 完全卸载Oracle11
  14. lvm讲解与磁盘挂载问题排除
  15. flex项目学习包括什么内容
  16. qgis打开shp数据_关于QGIS打开SHP文件属性表乱码
  17. MySQL/PostgreSQL/Oracle到OceanBase数据迁移同步
  18. 关于 Kubernetes中Pod健康检测和服务可用性检查的一些笔记(LivenessProbe+ReadinessProbe)
  19. 张家界 凤凰 旅游有感
  20. [转载] 支持支付宝付款的四大国外主机

热门文章

  1. SMS部署操作系统后记
  2. linux ssh编译命令,linux下升级 OpenSSH
  3. python批量裁剪图片_用Python写了一个图片格式批量处理工具
  4. 从资深遥控器在家工作的5个技巧
  5. powerpoint 发布_PowerPoint的死亡:这些谈话打破了常规
  6. 上海区块链会议演讲ppt_如何确保会议高质量的演讲
  7. opensource项目_最佳Opensource.com:开放的组织文化
  8. 代码组织和部署 文件操作 node.js 1
  9. 视觉SLAM十四讲学习笔记-第三讲-相似、仿射、射影变换和eigen程序、可视化演示
  10. 堆排序c语言6,C语言:十种排序(七) - 堆排序