Kai*_*aan 13 java-native-interface android android-ndk javah
我在使用JNI生成C头文件时遇到了麻烦javah.
这是我站在<project-dir>\bin目录中时使用的脚本:
javah -classpath C:\PROGRA~2\Android\android-sdk\platforms\android-8\android.jar com.test.JniTest
Run Code Online (Sandbox Code Playgroud)
作为回报,我得到:
ERROR: Could not find class file for 'com.test.JniTest'.
Run Code Online (Sandbox Code Playgroud)
即使班级JniTest肯定在\com\test.
我究竟做错了什么?
Joa*_*uer 19
您指定仅 包含的类路径android.jar.
您还需要包含存储类的位置.在您的情况下,它是当前目录,因此您需要使用.(;在Windows上分隔).调用应如下所示:
javah -classpath C:\PROGRA~2\Android\android-sdk\platforms\android-8\android.jar;. com.test.JniTest
Run Code Online (Sandbox Code Playgroud)
VJ *_*ons 18
如果您使用的是Linux或MAC-OS,请使用":"以分隔目录classpath而不是";"字符:示例:
javah -cp /Users/Android/android-sdk/platforms/android-xy/android.jar:. com.test.JniTest
Run Code Online (Sandbox Code Playgroud)
ra.*_*ra. 10
您应该将目录更改为<project-dir>\bin\classes; 然后,运行以下命令:
javah -classpath C:\PROGRA~2\Android\android-sdk\platforms\android-8\android.jar;. com.test.JniTest
Run Code Online (Sandbox Code Playgroud)
我正在使用以下命令文件生成标题:
jHdr.cmd在我的桌面上:
@echo on
SET PLATFORM=android-8
SET ANDROID_SDK_ROOT=C:\Android\android-sdk
SET PRJ_DIR=D:\Workspaces\sqLite\raSQLite
SET CLASS_PKG_PREFIX=ra.sqlite
cd %PRJ_DIR%\bin\classes
javah -classpath %ANDROID_SDK_ROOT%\platforms\%PLATFORM%\android.jar;. %CLASS_PKG_PREFIX%.%~n1
pause
Run Code Online (Sandbox Code Playgroud)
根据需要调整变量...
将此文件放在桌面上,然后将.java文件从eclise拖到jHdr.cmd,结果在%PRJ_DIR%\ bin\classes目录下
| 归档时间: |
|
| 查看次数: |
16793 次 |
| 最近记录: |