我正在学习在WINDOWS Eclipse上用NDK编写Android代码....一直在关注Sylvain Ratabouil的教程书。所以我在Run |外部工具|外部工具配置...... 创建一个新的程序配置。
名称:MyProject javah
位置:$ {env_var:JAVA_HOME} \ bin \ javah.exe
工作目录:$ {workspace_loc:/ MyProject / bin}
问题来自论证...... 当我尝试 参数:-d $ {workspace_loc:/ MyProject / jni} com.myproject.MyActivity 正如它在书中所说的
我点击运行时得到
Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: –d
当我尝试 $ {workspace_loc:/ MyProject / jni} com.myproject.MyActivity}
我得到了
Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: C:\Paul\Workspace\MyProject\jni
更新: 我把-classpath放在第一个并且它正在运行但是找不到com.myproject的类文件
答案 0 :(得分:5)
经过进一步研究...... 我做到了。
我将参数设置为
-d $ {workspace_loc:/ MyProject / jni} -classpath C:\ Paul \ android-sdk-windows \ platforms \ android-17 \ android.jar; $ {workspace_loc:/ MyProject / bin / classes } com.myproject.MainActivity
答案 1 :(得分:1)
在处理上述有关Android NDK的书时,我也花了很长时间来解决这个问题。
请注意以下事项:
java类名不是用{ }
编写的,只是写com.myproject.MyActivity
-classpath
参数可以接收以分号分隔的多个路径。
在我的情况下,这些参数有效:
位置:强>
${env_var:JAVA_HOME}\bin\javah.exe
工作目录:
${workspace_loc:/myproject/bin}
<强>参数:强>
-d ${workspace_loc:/myproject/jni} -classpath ${workspace_loc:/myproject/bin/classes};"C:\Eclipse\sdk\platforms\android-18\android.jar" com.myproject.MyActivity
(顺便说一句:在Eclipse项目中引用了正确的Adroid.jar文件。)
答案 2 :(得分:1)
今晚我也面临同样的问题,我发现跟随下面的方式不那么乏味......
NB ::不要忘记第三步输出周围的双qoute(&#34;)(&#34; $ {workspace_loc:/ HelloWorld / jni}&#34; )
后面还附有完整的图片
答案 3 :(得分:0)
以防万一......
1→转到(cd C:\ Program Files \ Java \ jdk1.7.0_60 \ bin)
2→ C:\ Program Files \ Java \ jdk1.7.0_60 \ bin&gt; javah -jni -classpath F:\ Android_OpenGLES \ FibonacciNative \ BIN \班 -d F:\ Android_OpenGLES \ FibonacciNative \ jni \ com.example.fibonaccinative.FibLib
不创建/使用环境变量...
答案 4 :(得分:0)
是的,这是正确的 更抽象的是
-d ${workspace_loc:/MyProject/jni} -classpath ${env_var:ANDROID_SDK_HOME}\platforms\android-16\android.jar;${workspace_loc:/MyProject/bin/classes} com.myproject.MyActivity
答案 5 :(得分:0)
我成功尝试后
javah com.sense.kios.Calculation
注意:包含包名称。
如果找不到javah作为命令而你得到了
The program 'javah' can be found in the following packages:
* gcj-4.6-jdk
* gcj-4.7-jdk
* openjdk-7-jdk
* openjdk-6-jdk
Try: sudo apt-get install <selected package>
使用jdk路径的直接路径,在我的例子中是/usr/lib/jvm/jdk1.8.0/bin/javah
。