根据网上的做法,老出现jni java.lang.unsatisfie.lang.unsatisfiedlinkerror ,问题答案
http://dikar.iteye.com/blog/382701
1.先写个java类,写个本地方法 编译后 javah Test生成 Test.h
public class Test{
static{
System.loadLibrary("hello");
}
public native void hello();
public static void main(String args[]){
new Test().hello();
}
}
#include <stdio.h>
#include <stdlib.h>
#include "Test.h"
JNIEXPORT void JNICALL _Java_Test_hello(JNIEnv * a, jobject b){ //一样注意_java 有个斜杠
printf("helloWorld");
}
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class Test */
#ifndef _Included_Test
#define _Included_Test
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: Test
* Method: hello
* Signature: ()V
*/
JNIEXPORT void JNICALL _Java_Test_hello
(JNIEnv *, jobject); //_Java_Test_hello 注意,java前边有个杠,是手动加上去的,因为java.lang.unsatisfie.lang.unsatisfiedlinkerror
#ifdef __cplusplus
}
#endif
#endif
gcc命令编译成hello.dll ,我用的MInGw 命令都是网上的
gcc -shared -Wl, -o hello.dll -ID:\Sun\SDK\jdk\include -ID:\Sun\SDK\jdk\include\win32 Test.c
然后java Test运行,控制台输出 helloWorld
返回String
JNIEXPORT jstring JNICALL _Java_Test_getString(JNIEnv *a, jobject o){
//printf("helloWorld");
jstring jstr;
char* sa[]={"hello","world"};
jstr=(*a)->NewStringUTF(a,sa[0]);
return jstr;
}
分享到:
相关推荐
JNI(Java Native Interface)是Java平台的一个重要特性,它允许Java代码和其他语言写的代码进行交互。...通过这个简单的JNI例子,你可以逐步了解并掌握JNI的基本使用,从而在Android开发中更好地利用本地代码的能力。
标题中的“使用java与C写的jni小例子”指的是一个通过Java Native Interface (JNI) 技术实现的项目,它展示了如何在Java程序中调用C语言编写的动态链接库(DLL)函数。JNI是Java平台标准的一部分,允许Java代码和...
本教程将通过一个小例子,详细介绍如何使用JNI实现Java与C++方法的互调。 首先,我们需要在Java层定义一个native方法。在Java中,我们可以使用`native`关键字声明一个方法,但不提供具体实现,如下所示: ```java ...
本示例代码"NDK JNI开发例子代码2"将深入探讨如何在Android应用中使用NDK和JNI进行原生编程。 首先,我们需要理解NDK的作用。在Android应用中,主要的编程语言是Java,但有时为了优化性能,如图形处理、数学计算或...
这个“安卓使用jni的例子”是一个实际应用JNI的示例,用于展示如何在Android平台上通过JNI接口实现Java代码调用C/C++代码。 首先,我们需要了解JNI的基本结构。在Java端,我们会定义一个native方法,这个方法没有...
这个“jni最简单例子,注释详细”应该是提供了一个基础的JNI学习教程,下面我们将深入探讨JNI的相关知识点。 1. **JNI概述** JNI是一种接口,使得Java应用程序可以调用本地(非Java)代码,也可以让本地代码调用...
这个"ubuntu上面使用jni例子"的压缩包很可能是提供了一个在Ubuntu环境下开发和运行JNI程序的示例。 JNI的核心在于创建本地方法接口,这些接口允许Java代码调用C/C++编写的函数,反之亦然。下面我们将深入探讨在...
一个jni例子,放到桌面直接编译就能跑,一个jni例子,放到桌面直接编译就能跑,一个jni例子,放到桌面直接编译就能跑,一个jni例子,放到桌面直接编译就能跑,一个jni例子,放到桌面直接编译就能跑,一个jni例子,放...
要创建一个JNI调用例子,我们需要以下几个步骤: 1. **创建Java类并声明本地方法**:在Android应用的Java源码中,你需要创建一个类并声明需要通过JNI调用的本地方法。这些方法需要使用`native`关键字修饰,并且不...
本篇将围绕"Android应用源码串口通信(JNI)例子.zip"这一主题,深入解析如何在Android应用中实现串口通信。 1. **JNI基础** JNI是Java平台的标准组成部分,它提供了一种方式让Java代码可以调用本地(非Java)代码,...
这个"android JNI简单例子"就是一个很好的学习平台,通过它,开发者可以了解并实践上述所有步骤,从而掌握在Android应用中使用JNI的基本流程。对于初学者来说,这将有助于理解Java和C/C++代码如何协同工作,提升应用...
这个例子展示了如何通过Java调用本地(C/C++)代码,并且提供了完整的流程,包括从Java类型转换为C类型,特别是将`jstring`转化为`char`数组。 1. **JNI基本概念**:JNI是一种接口,使得Java代码能够调用本地方法...
总结一下,本示例提供的`testndk`项目是一个结合使用AIDL和JNI的实践案例,展示了如何在Android应用中进行跨进程通信并利用C/C++代码提升性能。通过阅读源码和配合博客文章,你可以深入理解这两种技术的工作原理和...
在这个"JNI的例子代码,程序设计"中,我们将深入探讨如何使用JNI来实现Java和C之间的相互调用。 首先,我们来看Java调C的部分。当Java代码需要调用C函数时,我们需要定义一个Java方法,并使用`native`关键字标记。这...
在这个“JNI加密例子”中,我们将探讨如何利用JNI来实现数据加密。 JNI的核心是提供了一种方式,使得Java代码可以调用C/C++编写的本地方法,反之亦然。这种混合编程模式可以充分利用Java的跨平台性和C/C++的高效性...
这个"NDK JNI开发例子代码"是一个实际的项目实例,帮助开发者了解如何在Android中使用NDK和JNI。通过参考提供的博客链接(http://blog.csdn.net/lm1391058/article/details/51221823),我们可以学习到以下关键知识...
通过这个摄像头JNI例子,我们了解了如何声明和实现本地方法,以及如何在C/C++代码中处理摄像头数据。JNI提供了一种强大的方式,让Java应用能够充分利用底层平台的功能,同时保持代码的可移植性。学习和掌握JNI技术,...