我在网上看了几个小时但找不到以下问题的答案...... 我有一个使用" ant release"运行正常的android项目。 MacOSX上的命令行(由于各种原因我不能使用Eclipse或Android Studio等)。我需要扩展一个包含在jar文件中的第三方类(称为mididriver.jar)。 我在主java源文件中添加了以下行:
import mididriver。*;
我需要将什么添加到我的build.xml文件中?我应该将mididriver.jar文件放在我的项目文件夹结构中,以便它不会给我一个"包mididriver不存在"错误?
非常感谢(提前)!
以下是我在添加新类之前的build.xml的内容:
<project name="MyProject" default="debug">
<loadproperties srcFile="local.properties"/>
<loadproperties srcFile="project.properties"/>
<target name="clean" depends="android_rules.clean">
<delete dir="libs"/>
<delete dir="obj"/>
<exec executable="${ndk.dir}/ndk-build" dir="${basedir}" failonerror="true">
<arg value="clean"/>
</exec>
</target>
<target name="-pre-build">
<condition property="makefileConfig" value="Debug" else="Release">
<equals arg1="${ant.project.invoked-targets}" arg2="debug"/>
</condition>
<condition property="ndkDebugValue" value="NDK_DEBUG=1" else="NDK_DEBUG=0">
<equals arg1="${ant.project.invoked-targets}" arg2="debug"/>
</condition>
<condition property="app_abis" value="armeabi-v7a" else="armeabi-v7a">
<equals arg1="${ant.project.invoked-targets}" arg2="debug"/>
</condition>
<exec executable="${ndk.dir}/ndk-build" dir="${basedir}" failonerror="true">
<arg value="--jobs=2"/>
<arg value="CONFIG=${makefileConfig}"/>
<arg value="${ndkDebugValue}"/>
<arg value="APP_ABI=${app_abis}"/>
</exec>
<delete file="${out.final.file}"/>
<delete file="${out.packaged.file}"/>
</target>
<import file="${sdk.dir}/tools/ant/build.xml"/>
</project>
答案 0 :(得分:1)
在项目中创建一个lib目录
my-project
src
target
lib
将jar放入lib目录。
修改javac任务,将lib目录添加到类路径中。
<path id="lib.dir">
<fileset dir="./lib">
<include name="**/*.jar"/>
</fileset>
</path>
<javac srcdir="src" destdir="target/classes" >
<classpath refid="lib.dir"/>
</javac>
我不知道哪个目标不适合你。是javac吗?还是ndk-build?我不知道如何为ndk-build指定类路径。必须有一些选项,如-classpath
。
答案 1 :(得分:0)
好吧,在多次尝试定义lib文件夹失败后,我将jar文件放在现有的libs文件夹中,现在获得了成功的构建...