正确的jar lib for android ane

时间:2013-12-03 12:30:55

标签: android jar air javac air-native-extension

我想用ant完全编译。但有一个问题。我的不适用。 我通过实验意识到jar文件中存在一个问题:如果我使用eclipse ide导出jar,则其工作正常。但是,如果我用蚂蚁编译jar它不起作用。两个jar文件看起来非常相似,我找不到区别。 JDK verion 1.7.0(更新40) 这是我的蚂蚁片段:

<property name="FLEX_HOME" value="C:/Program Files (x86)/FlexSDK/4.11.0/"/> 
<property name="fre.lib" value="${FLEX_HOME}/lib/android/FlashRuntimeExtensions.jar" />
<property name="android.lib" value="C:/Program Files (x86)/Android SDK/sdk/platforms/android-10/android.jar" />

<target name="compile.classes" description="Compile java classes">
     <javac destdir="temp/java_classes" classpath="${fre.lib}:${android.lib}" fork="true">
          <src path="${java.classes}"/>
     </javac>
</target>

<target name="compile.jar" description="Make jar lib">
     <jar destfile="temp/libs/lib.jar">
          <fileset dir="temp/java_classes">
               <include name="**/*.class"/>
          </fileset>
     </jar>
</target>

如何正确编译jar lib?也许我丢失了java comliler参数?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 我正在用jdk 7进行编译。但是这个版本没有用。 需要安装jkd 6并添加一些编译器属性:

<property name="java_rt.lib" value="C:/Program Files (x86)/Java/jdk1.6.0_45/jre/lib/rt.jar" />

<target name="compile.jar" description="Making jar lib">
    <javac 
        failonerror="true"
        destdir="temp/java_classes"
        classpath="${fre.lib}:${android.lib}"
        source="1.6" target="1.6"
        includeantruntime="false"
        bootclasspath="${java_rt.lib}">
        <src path="${java.classes}"/>
    </javac>
    <jar basedir="temp/java_classes" destfile="temp/ane/android/commExtLib.jar"/>
</target>