同じコードベース(Lite/Proなど)の複数のバージョンが必要なAndroidプロジェクトでは作業していますが、Javaでは前処理指令は許可されません。 Googleでの検索では、Prebopプリプロセッサについてこのthisチュートリアルがスローされます。問題は、このチュートリアルはAndroid用ではないことと、特定のバージョンを指定してコンパイルした後にapkを生成する方法がわからないことです。私は、Android上で複数のAPIのと開発は非常にイライラさせられるので、誰かが私に指示を与えることができることを望むAntを使用してPrebopでAndroid APKを生成する方法
<?xml version="1.0"?>
<project name="Hello" default="compile" basedir=".">
<property file="local.properties" />
<property file="ant.properties" />
<loadproperties srcFile="project.properties" />
<property name="android-home" value="../android-sdks" />
<property name="android-version" value="3" />
<property name="android-platform-specific" value="${android-home}/platforms/android-${android-version}" />
<property name="android-jar" value="${android-platform-specific}/android.jar" />
<property name="android-tools" value="${android-home}/platform-tools" />
<property name="resource-folder" value="res" />
<property name="gen-folder" value="gen" />
<property name="src" location="src" />
<property name="tmpfolder" value="/tmp/Hello" />
<property name="src_lite" value="${tmpfolder}/src_lite"/>
<property name="src_pro" value="${tmpfolder}/src_pro"/>
<property name="build" location="bin" />
<property name="build_lite" value="${build}/lite"/>
<property name="build_pro" value="${build}/pro"/>
<property name="out-folder" value="${build_lite}" />
<property name="dex-file" value="classes.dex" />
<property name="intermediate-dex" value="${out-folder}/${dex-file}" />
<property name="external-libs-folder" value="bin/lite" />
<property name="out-classes" value="${out-folder}/classes" />
<property name="out-classes-location" value="./${out-classes}"/>
<target name="clean">
<delete dir="${tmpfolder}" />
<delete dir="${build}" />
</target>
<target name="makedir">
<mkdir dir="${src_lite}" />
<mkdir dir="${src_pro}" />
<mkdir dir="${build_lite}" />
<mkdir dir="${build_pro}" />
</target>
<target name="resource-src" depends="makedir">
<echo>Generating R.java/Manifest.java from the resources...</echo>
<exec executable="${android-tools}/aapt.exe" failonerror="true">
<arg value="package" />
<arg value="-m" />
<arg value="-J" />
<arg path="${gen-folder}" />
<arg value="-M" />
<arg path="AndroidManifest.xml" />
<arg value="-S" />
<arg path="${resource-folder}" />
<arg value="-I" />
<arg path="${android-jar}" />
<arg value="--custom-package" />
<arg value="com.pack.name" />
</exec>
</target>
<target name="copysource">
<copy todir="${src_lite}"><fileset dir="src" /></copy>
<copy todir="${src_pro}"><fileset dir="src" /></copy>
</target>
<target name="splitsource" description="preprocessor">
<preprocess indir="${src}" outdir="${src_lite}" out="replace">
<var name="pro" value="false"/>
<filetype commentend="*/" commentbegin="/*" extensions="java"/>
</preprocess>
<preprocess indir="${src}" outdir="${src_pro}" out="replace">
<var name="pro" value="true"/>
<filetype commentend="*/" commentbegin="/*" extensions="java"/>
</preprocess>
</target>
<target name="compile" depends="makedir, copysource">
<javac srcdir="${src_lite}" destdir="${build_lite}" includeantruntime="false">
<classpath>
<path id="application" location="${android-jar}"/>
<path id="application" location="src" />
<path id="application" location="res" />
</classpath>
</javac>
<javac srcdir="${src_pro}" destdir="${build_pro}" includeantruntime="false">
<classpath>
<path id="application" location="${android-jar}"/>
<path id="application" location="src" />
<path id="application" location="res" />
</classpath>
</javac>
</target>
<import file="${sdk.dir}/tools/ant/build.xml" />
</project>
:これはアリのコードです。