您的位置:首页 > 编程语言 > Java开发

从零开始使用eclipse Ant脚本语言生成.h头文件:[javah] Exception in thread "main" java.lang.NullPointerException

2016-01-07 19:50 741 查看
在看ime老师的使用ant生成.h头文件的视频时,遇到了一个bug,而ime老师也没有提出该bug.他使用的mac开发的,编译成功了.但是我用的windows开发的,遇到了一个bug.

Buildfile:  D:\workspace\HelloNDK\build_headers.xml
BuildHeaders:
BuildGetStringHeaders:
[javah] Exception in thread "main" java.lang.NullPointerException
[javah]     at com.sun.tools.javah.JavahTask.run(JavahTask.java:503)
[javah]     at com.sun.tools.javah.JavahTask.run(JavahTask.java:329)
[javah]     at com.sun.tools.javah.Main.main(Main.java:46)

BUILD FAILED
D:\workspace\HelloNDK\build_headers.xml:19: The following error occurred while executing this line:
D:\workspace\HelloNDK\build_headers.xml:26: compilation failed

Total time: 1 second


Ant脚本内容:

<?xml version="1.0" encoding="UTF-8"?>
<!-- ======================================================================
2016-1-7 下午4:34:06

HelloNDK
description

zzk
====================================================================== -->
<project name="HelloNDK" default="BuildAllHeaders">
<description>
description
</description>

<!-- =================================
target: BuildAllHeaders
================================= -->
<target name="BuildAllHeaders">
<antcall target="BuildGetStringHeader">
</antcall>
<antcall target="BuildGetIntHeader">
</antcall>
</target>

<!-- - - - - - - - - - - - - - - - - -
target: BuildGetStringHeader
- - - - - - - - - - - - - - - - - -->
<target name="BuildGetStringHeaders">
<javah destdir="./jni" classpath="./bin/classes/" class="com.zzk.hellondk.GetString">
</javah>
</target>
<!-- - - - - - - - - - - - - - - - - -
target: BuildGetIntHeader
- - - - - - - - - - - - - - - - - -->
<target name="BuildGetStringHeaders">
<javah destdir="./jni" classpath="./bin/classes/" class="com.zzk.hellondk.GetInt">
</javah>
</target>

</project>


使用下面的方法替换掉上面的两个方法就可以了.

<!-- - - - - - - - - - - - - - - - - -
target: BuildGetStringHeader
- - - - - - - - - - - - - - - - - -->
<target name="BuildGetStringHeader">
<exec executable="javah" dir="${basedir}/bin/classes">
<arg value="-classpath" />
<arg value="${basedir}/bin/classes" />
<arg value="-d" />
<arg value="${basedir}/jni" />
<arg value="-jni" />
<arg value="com.zzk.hellondk.GetString" />
</exec>
</target>
<!-- - - - - - - - - - - - - - - - - -
target: BuildGetIntHeader
- - - - - - - - - - - - - - - - - -->
<target name="BuildGetStringHeaders">
<javah destdir="./jni" classpath="./bin/classes/" class="com.bubble.hellondk.GetString">
</javah>
</target>
<target name="BuildGetIntHeader">
<exec executable="javah" dir="${basedir}/bin/classes">
<arg value="-classpath" />
<arg value="${basedir}/bin/classes" />
<arg value="-d" />
<arg value="${basedir}/jni" />
<arg value="-jni" />
<arg value="com.zzk.hellondk.GetInt" />
</exec>
</target>


再次build.成功.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Ant eclipse