Android Studio 开发JNI工程步骤

转载 2016年08月31日 11:55:11
参考:http://blog.csdn.net/sodino/article/details/41946607
自己把遇到的问题的步骤又整合了下。

NDK的下载:http://developer.android.com/tools/sdk/ndk/index.html#Revisions

Step: 1. 添加native接口
注意写好native接口和System.loadLibrary()即可了,并无特别之处。
P.S:onCreate()中对R.id.txt执行setText(),所以这里需要对xml布局文件按正常的开发步骤进行修改即可。

直接给出代码如下:
public class MainActivity extends AppCompatActivity {

    static {
        System.loadLibrary("JniTest");
    }

    private native String getStringFromNative();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView text1 = (TextView) findViewById(R.id.text1);
        text1.setText(getStringFromNative());
    }
}
Step: 2.执行Build->Make Project

这里编译通过不报错就行。


Step: 3.javah生成c头文件

点击"View->Tool Windows->Terminal",即在Studio中进行终端命令行工具.执行如下命令生成c语言头文件。

操作命令:
javah -d jni的路径com.example.administrator.testjni.MainActivity


我的jni目录和java目录同级,所以这里../jni是返回main进入jni文件夹的意思。


Step: 4.编辑c文件

在jni目录下新建一个c文件,随意取名,我的叫jnitest.c 。然后编辑代码如下(后面会解释啥意思,这里重在工具使用):


#include "com_example_administrator_testjni_MainActivity.h"

/**
 * yfchu测试
 *
 * */
JNIEXPORT jstring JNICALL Java_com_example_administrator_testjni_MainActivity_getStringFromNative
        (JNIEnv *env,jobject obj){
    return (*env)->NewStringUTF(env,"This just a test for Android Studio NDK JNI developer!");
}

Step: 5.配置NDK

这一步包括两个动作:
1.指明ndk路径
2. 修改build.gradle配置
    工程中共有两个build.gradle配置文件,我们要修改的是在<Project>\app\build.gradle这个文件。为其在defaultConfig分支中增加上


还要:添加 android.useDeprecatedNdk=true 到该 gradle.properties 文件中。
(不加会报错:android studio Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the curren)

这时,再执行"Build->Rebuild Project",就可以编译出so文件了。


运行app:



AndroidStudio开发第一个JNI工程

转自:http://blog.csdn.net/sodino/article/details/41946607 我根据自己的实践,对该引用的文章做了一些修改(另:由于我的Android Studio...
  • yangyao_iphone
  • yangyao_iphone
  • 2016年04月12日 18:58
  • 2608

在AndroidStudio2.3.2下JNI开发的详细步骤

安装NDK在工具栏点击File->Settings->Appearance & Behavior->System Settings->Android SDK->SDK Tools选中LLDB和NDK,...
  • luhaoying1111
  • luhaoying1111
  • 2017年05月18日 15:04
  • 865

Android Studio JNI开发(1)------CMake编译原生库

一、新建项目勾选上这个 include C++ Support,项目工程会自动在App.bundle中添加这个代码和这个文件CMakeLists.txt,直接运行就能看到加载C++的native方法 ...
  • u014316982
  • u014316982
  • 2016年11月07日 20:14
  • 1080

AndroidStudio 进行 JNI / NDK 开发:初步配置及使用

AndroidStudio 进行 JNI / NDK 开发:初步配置及使用 遇到的坑及补坑记录
  • zeqiao
  • zeqiao
  • 2017年09月08日 12:03
  • 1646

NDK-JNI实战教程(一) 在Android Studio运行第一个NDK程序

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!NDK开发,其实是为了项目需要调用底层的一些C/C++的一些东西;另...
  • yanbober
  • yanbober
  • 2015年04月27日 13:23
  • 89287

Android Studio3.0开发JNI流程------JNI函数

JNI函数 本章为JNI函数提供参考信息。其中列出了全部JNI函数,同时也给出了JNI函数表的准确布局。注意:“必须”一词用于约束JNI编程人员。例如,当说明某个JNI函数必须接收非空对象时,就应确...
  • cloverjf
  • cloverjf
  • 2017年11月29日 16:47
  • 600

Android Studio3.0开发JNI流程------JNI入门级

Android Studio3.0开发JNI的具体流程
  • cloverjf
  • cloverjf
  • 2017年11月28日 13:01
  • 1066

Android studio导入含有jni代码依赖工程的eclipse项目及常见错误解决

解决android studio导入含有jni代码的依赖工程的eclipse项目,以及常见问题
  • qq_15465097
  • qq_15465097
  • 2017年06月07日 17:34
  • 636

Android Studio jni开发 串口通信

公司需求做串口通信,由于开发环境是Android Studio所以配置时出现很多问题. 这个是网上照搬的SerialPort类: public class SerialPort { priv...
  • u010302327
  • u010302327
  • 2015年12月08日 21:20
  • 3417

Android Studio创建JNI项目(一)

最近博主在研究JNI,在Android Studio中开发JNI中遇到一些坑,记录下来,希望给需要的人提供一些解决方法. JNI(Java Native Interface) Java本地接口.其实就...
  • qq_16558621
  • qq_16558621
  • 2016年08月18日 20:25
  • 2492
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android Studio 开发JNI工程步骤
举报原因:
原因补充:

(最多只允许输入30个字)