2

我正在使用 Ubuntu Linux 32 位系统,在终端中它显示没有指定类

sanidhya09@sanidhya09:~/workspace/NdkFooActivity$ javah -jni -classpath adt-bundle-linux-x86/sdk/platforms/android-4.2/android.jar;bin/classes/ -d jni/ com.example.NdkFooactivity 错误:没有指定类 bash: bin/classes/: 是一个目录

即使我试过这个

sanidhya09@sanidhya09:~/workspace/NdkFooActivity/bin/classes$ javah
-jni -classpath adt-bundle-linux-x86/sdk/platforms/android-4.2/android.jar; com.example.NdkFooactivity.NdkFooActivity Error: no classes specified com.example.NdkFooactivity.NdkFooActivity: command not found

甚至我尝试了外部工具配置,在我写的参数部分

-d /home/sanidhya09/workspace/NdkFooActivity/jni -classpath /home/sanidhya09/adt-bundle-linux-x86/sdk/platforms/android-4.2/android.jar:/home/sanidhya09/workspace/NdkFooActivity/bin/classes com.example.NdkFooactivity

即使在日食中,我也会收到错误提示:

[HelloJni] 错误 127 HelloJni C/C++ 问题

4

2 回答 2

1
sanidhya09@sanidhya09:~/workspace/NdkFooActivity$ javah -jni -classpath bin/classes:~/adt-bundle-linux-x86/sdk/platforms/android-16/android.jar com.example.NdkFooactivity.NdkFooActivity

应该没问题,假设您的应用程序包是 com.example.NdkFooactivity 并且您感兴趣的类是 NdkFooActivity。

请注意,您必须将路径传递给android.jar您实际用于编译的路径。在我的 SDK 中,该目录被称为android-16,而不是android-4.2. 此外,您需要在classpathbin/classes中有目录。您的类路径中可能需要更多jar

于 2013-02-14T21:46:37.887 回答
0

但我还想补充一件事。(这占用了我早上的大部分时间来解决这个问题)

在指定类路径时 = 避免使用 ./bin/classes:~/ProjectFolder/bin/classes ( the tilde representing the Home directory)

但是使用“../../”来切换目录。由于某种原因,javah 无法识别主目录的波浪号运算符。

还有一件事,如果该类依赖于其他项目,那么您在类路径中也需要它

user@laptop:~/SomeProject javah -classpath ./bin/classes:../<Whereever the path is>/SomeOtherDependentProject:../<Path to android-sdk>/android.jar <Qualified class path>
于 2014-04-15T07:19:42.780 回答