6

我在我的 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 中访问活动类。

请指教。

4

2 回答 2

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

在此处输入图像描述

于 2014-09-23T07:39:02.183 回答
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 类库

假设:

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

请相应地修改您的命令。

于 2013-03-16T16:11:00.120 回答