android studio jni so,Android studio JNI 制做SO文件,在其余项目中调用
这些目录下,每一个下面都会有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文件,在其余项目中调用相关推荐
- visual studio 2017 创建 android 本地共享库(.so) 并从 C# android 项目中调用
Developing Xamarin Android Native Applications ★★★★★ ★★★★ ★★★ ★★ ★ February 23, 2015 by Ankit Asthan ...
- 在Android项目中调用FFmpeg命令
概述 FFmpeg,命令行非常强大.在PC机上,调用一行FFmpeg命令,就可以对视频文件进行剪切.合并.转码等功能.本文将介绍如何在Android中调用FFmpeg命令行. 编译 前面已经有两篇文章 ...
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
2019独角兽企业重金招聘Python工程师标准>>> 最近自己想研究下地图,本来想研究google Map,但是申请API key比较坑爹,于是从百度地图入手,其实他们的用法都差不 ...
- Android之项目中调用已有.so库
注意该.so库指的是android平台的,非一般linux.unix平台: 1.现有库libcom_ycan_testLib.so 2.新建android项目TestLib2 3.添加新类: 类名:t ...
- Android 将MAP格式数据写入XML 将XMP文件读MAP数据格式中
其中涉及的部分类可以自行查询,如:AtomicFile.java FastXmlSerializer.java private static final String APPCONFIG_FILE ...
- 在Android Studio中搜索整个项目中所有出现的字符串
本文翻译自:Search all the occurrences of a string in the entire project in Android Studio I've just start ...
- android 自定义模板下载,android studio 自定义模板
由于项目用上了 mvp 架构,基本上一个页面就至少需要新创建6个类,分别是 model view presenter 的接口以及其对应的实现类,再加上使用 dagger 的话就要更多了,所以这时候 a ...
- android studio 库工程,Android Studio 添加已有工程方法
准备工作: 修改 excluded-paths和android.iml,修改内容详见下图.(目的:过滤和优先在sourcefolder查找,若没有再到JAR包中查找) BorqsUI/LINUX/an ...
- android 动态定制模板,android studio 自定义模板
由于项目用上了 mvp 架构,基本上一个页面就至少需要新创建6个类,分别是 model view presenter 的接口以及其对应的实现类,再加上使用 dagger 的话就要更多了,所以这时候 a ...
最新文章
- [Unity3D]Unity3D连衣裙实现游戏开发系统
- ESP32 官方文档(三)分区表
- jquery mobile自定义图标实现方法
- android os于8.1区别,Android-x86 8.1-rc2发布 运行于x86 PC上的安卓OS
- android线程控制UI更新(Handler 、post()、postDelayed()、postAtTime)
- 27 个问题,告诉你Python为什么这么设计
- 今日代码(200708)--缺失值处理
- Asp.net报表制作 OpenFlashChart免费图表组件
- @Configuration和@Bean注解详解
- python获取计算机信息系统数据罪_使用 python 收集获取 Linux 系统主机信息
- log4j的8个日志级别(OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL)
- 大数据实战之环境搭建(十)
- 完全卸载Oracle11
- lvm讲解与磁盘挂载问题排除
- flex项目学习包括什么内容
- qgis打开shp数据_关于QGIS打开SHP文件属性表乱码
- MySQL/PostgreSQL/Oracle到OceanBase数据迁移同步
- 关于 Kubernetes中Pod健康检测和服务可用性检查的一些笔记(LivenessProbe+ReadinessProbe)
- 张家界 凤凰 旅游有感
- [转载] 支持支付宝付款的四大国外主机
热门文章
- SMS部署操作系统后记
- linux ssh编译命令,linux下升级 OpenSSH
- python批量裁剪图片_用Python写了一个图片格式批量处理工具
- 从资深遥控器在家工作的5个技巧
- powerpoint 发布_PowerPoint的死亡:这些谈话打破了常规
- 上海区块链会议演讲ppt_如何确保会议高质量的演讲
- opensource项目_最佳Opensource.com:开放的组织文化
- 代码组织和部署 文件操作 node.js 1
- 视觉SLAM十四讲学习笔记-第三讲-相似、仿射、射影变换和eigen程序、可视化演示
- 堆排序c语言6,C语言:十种排序(七) - 堆排序