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

来源:互联网 发布:linux下卸载oracle11g 编辑:程序博客网 时间:2024/05/01 07:08

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

Buildfile:  D:\workspace\HelloNDK\build_headers.xmlBuildHeaders: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 failedTotal 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.成功.
构建成功

0 0