为android活动类创建头文件

时间:2013-03-13 05:55:09

标签: java android android-activity android-ndk java-native-interface

我在我的android Activity类中添加了一些原生方法。现在我想为class创建头文件。

从命令行创建头文件时出现以下错误。

C:\AndroidProjects\JniTest\bin\classes>javah -classpath .;
C:\adt-bundle-windows-x86\sdk\platforms\android.jar com.example.jnitest.JniTest
Error: cannot access android.app.Activity
class file for android.app.Activity not found

基本上无法从jar访问活动类。

请建议。

2 个答案:

答案 0 :(得分:2)

在Eclipse中尝试以下内容,

转到>运行|外部工具|外部工具配置在程序下通过单击小图标创建新配置。

命名。

位置将是:C:\ Program Files \ Java \ jdk1.7.0_04 \ bin \ javah.exe

工作目录将是:$ {workspace_loc:/ My_First_NDK / bin / classes}和

参数将是:-classpath $ {workspace_loc:/ My_First_NDK / bin / classes} -bootclasspath“C:\ adt-bundle-windows-x86-20140624 \ sdk \ platforms \ android-19 \ android.jar”-v -d $ {workspace_loc:/ My_First_NDK / jni} com.mypackage.ndk.HelloNDK

enter image description here

答案 1 :(得分:1)

在使用Windows \时,命令将是(使用反斜杠(/)而不是正斜杠(cmd):

javah -bootclasspath $ANDROID_SDK_ROOT/platforms/android-17/android.jar -classpath bin/classes com.example.jnitest.JniTest

您应该使用-bootclasspath代替-classpath,因为android.jar重新实施Java Class Library

假设:

  • 您当前的目录是:C:\AndroidProjects\JniTest;
  • 您的Android SDK安装在$ANDROID_SDK_ROOT(适用于Windows的%ANDROID_SDK_ROOT%);
  • 您的目标API级别为android-17

请相应修改您的命令。