javah错误:无法访问活动

时间:2012-10-06 14:03:38

标签: android android-ndk javah

我正在尝试使用Javah为我的Android NDK应用程序创建.h文件。我正在使用cygwin为我做同样的事情。

将工作区修复到当前应用程序的bin文件夹,我执行了以下命令: -

javah -classpath /cygdrive/c/Android/android-sdk/platforms/android.jar myNDK\bin\classes my.first.NDK.MyNDKActivity

但是,它始终给出以下错误: -

error: cannot access myNDKbinclasses
class file for myNDKbinclasses not found
javadoc: error - Class myNDKbinclasses not found.
error: cannot access my.first.NDK.MyNDKActivity
class file for my.first.NDK.MyNDKActivity not found
javadoc: error - Class my.first.NDK.MyNDKActivity not found.
Error: No classes were specified on the command line.  Try -help.

有人可以帮我解决这个问题吗?

我还试图去包含java文件的文件夹并在那里执行javah,但我仍然得到同样的错误: -

error: cannot access MyNDKActivity
class file for MyNDKActivity not found
javadoc: error - Class MyNDKActivity not found.
Error: No classes were specified on the command line.  Try -help.

以某种方式描述问题是由于某些权限问题,我猜。

4 个答案:

答案 0 :(得分:2)

您似乎在类路径上缺少分隔符:

javah -classpath /cygdrive/c/Android/android-sdk/platforms/android.jar:myNDK/bin/classes my.first.NDK.MyNDKActivity

答案 1 :(得分:1)

android.jar在你的行中做什么?!

此外,MyNDKActivity是包含原生签名的类?

我在这种形式下使用了javah(它适用于我):

javah -d output/ -classpath /home/bod/path/to/eclipse/workspace/project/classes com.myapp.NDKBridge

其中:

-d output / 是收集生成的标题的目录

-classpath / home /.../ classes - 包含项目中类的文件夹

com.myapp.NDKBridge - 声明原生签名的类名称。

答案 2 :(得分:1)

最后,我解决了我的问题。我使用的类路径有问题。这是最终的解决方案: -

  1. $PROJECT_DIRECTORY/src

  2. 执行命令的位置
  3. Android构建系统的ant部分实际上将类文件放在bin/classes中。所以类路径应该是$ PROJECT_DIRECTORY / bin / classes

  4. javah -classpath ../bin/classes my.first.NDK.MyNDKActivity

答案 3 :(得分:1)

也许它可以工作!添加你的sdk路径的选项[-bootclasspath]。

  

javah -bootclasspath /home/lmdyyh/development/adt-bundle-linux-x86-20131030/sdk/platforms/android-19/android.jar -classpath bin / classes -d jni com.myndk.Myndk