我花了一小时又一小时的时间,没有向前移动一英寸。我已经重做了几次这个项目,没有留下任何其他的地方。希望这里的人能给我们一些启发,指出一些方向。
在Linux Eclipse IDE面板>运行>外部工具>外部工具配置中:
Name: Dev javah
Tab [main]:
* location: /usr/java/jdk1.6.0_25/bin/javah
* working directory: ${workspace_loc:/Dev/bin}
* Arguments: ??我试过了:
* Arguments: -d ${workspace_loc:/Dev/jni} com.dev.DevActivity ${project_classpath:Dev} com.pkgpub.DevActivity这给了我:
1 error
javadoc: error - Illegal package name: "/home/user/dev/Dev/bin/classes"并且还尝试了:
* Arguments: -d ${workspace_loc:/Dev/jni} com.dev.DevActivity这就给了..。
error: cannot access com.dev.DevActivity
class file for com.dev.DevActivity not found
javadoc: error - Class com.dev.DevActivity not found.
Error: No classes were specified on the command line. Try -help.类似于-
* Arguments: -d ${workspace_loc:/Dev/jni} com.pkgpub.DevActivity这给了我:
error: cannot access com.pkgpub.DevActivity
class file for com.pkgpub.DevActivity not found
javadoc: error - Class com.pkgpub.DevActivity not found.
Error: No classes were specified on the command line. Try -help.但是当我运行的时候:
which javah
/usr/bin/which: no javah in (/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/user/android-sdks/tools:/home/user/android-sdks/platform-tools:/opt/android/android-ndk-r7:/home/user/.local/bin:/home/user/bin:/home/user/android-sdks/tools:/home/user/android-sdks/platform-tools:/opt/android/android-ndk-r7:/home/user/android-sdks/tools:/home/user/android-sdks/platform-tools:/opt/android/android-ndk-r7)问题是。项目没有编译是因为javah对Eclipse NDK是不可见的,还是由于参数详细说明缺少了什么?在这种情况下,如何修复它?
谢谢。
发布于 2012-02-16 22:52:38
尝试添加
-classpath库/类
作为javah的参数
发布于 2012-05-04 18:49:38
特别为Android设计:
在bin之后立即使用类,比如project_location/bin/classes,这对我在Linux Fedora上很有效
javah -d /var/www/project/jni/ -classpath /var/www/project/bin/classes/ com.android.TestClass发布于 2012-02-17 04:48:05
@BlackBelt谢谢你的建议!
以下是工作的参数,解决了编译过程的javah端问题:
-d ${workspace_loc:/Dev/jni} com.pkgpub.Dev -classpath ${workspace_loc:/Dev/bin/classes/} com.pkgpub.Dev其中pkgpub是包名,Dev是项目名。值得一提的是,该项目包含以下文件:\src\Dev.java;\jni\Dev.c;\jni\Dev.h;\bin...\pkgpub\Dev.class。
现在,它生成具有正确内容的文件jni/com_pkgpub_Dev.h。这太棒了!
然而,ndk-build仍然没有完全链接,并且不会生成com_pkgpub_Dev.c文件。因此,从Project > Project Build -来了一条消息:
**** Build of configuration Build (GNU) for project Dev ****
ndk-build
make: *** No rule to make target `jni/com_pkgpub_Dev.c', needed by `obj/local/armeabi/objs/dev/com_pkgpub_Dev.o'. Stop.
**** Build Finished ****从这条消息看,/jni/Android.mk文件中似乎缺少一些参数:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CFLAGS := -DHAVE_INTTYPES_H
LOCAL_MODULE := dev
LOCAL_SRC_FILES := com_pkgpub_Dev.c Dev.c
include $(BUILD_SHARED_LIBRARY) 要解决这个问题,只需要创建丢失的文件"jni/com_pkgpub_Dev.c“。此文件内容应基于"jni/com_pkgpub_Dev.h“文件中包含的自动生成的代码手动生成。
现在,它起作用了!
https://stackoverflow.com/questions/9313197
复制相似问题