为android studio中的本机方法实现JNI生成C头文件(* .h)

时间:2016-05-02 01:50:00

标签: android gradle header java-native-interface javah

如何生成包含Android Studio中本机方法实现JNI的函数原型的C头文件(* .h),同时自动构建?

谢谢

3 个答案:

答案 0 :(得分:3)

假设您有一个项目HelloNative

HelloNative
   |-build/intermediate/classes/debug  (you get this directory upon project build)
   |-app/src/main/jni
        /src/main/java/com/planets/mercury/HelloNativeActivity.java

并且您想为HelloNativeActivity.java生成头文件 - >这样做

cd HelloNative

javah -d app/src/main/jni -classpath /Users/john-smith/Android/sdk/platforms/android-19/android.jar:app/build/intermediates/classes/debug com.planets.mercury.HelloNativeActivity

将john-smith和android sdk路径替换为您自己机器上的路径。 对于android jar文件。您可以使用您选择的任何内容。

EG。 android-19,或android-21

答案 1 :(得分:1)

要在android studio中生成头文件,请按照给定的几个步骤进行操作。

1) Open Android Studio Terminal
   (At Left Bottom Corner Given Terminal Tab)

2) type this command first
   (cd app/src/main)
   it is located to the your main source directory.

3) now type this command in the termial for the generation of the header file
   (javah -d cpp -classpath ../../build/intermediates/classes/debug <your_packagename>.<class_name>)

答案 2 :(得分:0)

我建议创建一个外部工具。

转到文件->设置->工具->外部工具 并添加一个新工具。填写对话框表单(使用“插入宏”按钮)

  • 名称:javah
  • 说明:生成jni头文件
  • 程序:$ JDKPath $ \ bin \ javah
  • 参数:-d $ SourcepathEntry $ .. \ cpp \ -v $ FileClass $
  • 工作目录。 $ SourcepathEntry $

保留其他选项不变。

enter image description here

现在,您可以在 Project Explorer 中选择您的类,右键单击,然后从上下文菜单中启动External Tool-> javah。

头文件将在项目的 cpp 文件夹中创建(如Android Studio Native开发所建议),但是您需要浏览该文件夹才能看到它。

功劳归于http://kn-gloryo.github.io/Build_NDK_AndroidStudio_detail/ (已修改为与最新的SDK和Android Studio更加一致) 并转到Javah: Error: cannot access android.support.v7.app.ActionBarActivity