Android之Ant引用项目打包(Is Library)

本人是在集成Ant和Maven多渠道打包中遇到 了问题: 项目有Is Library项目,打包时打不到类,打包后缺引用项目中的东西,所以用了以下方法。

首先说明 ,这是一个笨办法,不过确实没办法解决,只能这样了。

我的情况 是这样的,用maven打包时只打把在pom.xml依赖的包(或一个项目)打进apk里,如果不采用maven来管理则会出问题,但是有的时候第

三方的项目不一定是maven项目或者其它原因就不能在依赖里做,扯远了。说正题,咱们的Android项目可以通过Is Library的方式加到Libraries中,这样

就可以达到重用或者模块化的开发,但是在Ant打包的时候(除eclipse自带的)就不会被打到Apk里面,所以只能在打包前先把第三方的项目或者jar编译

到我们的主项目中来再执行打包。

如果有Is Library项目,在project.properties中会生成android.library.reference.1=../JUIBase”这样的代码,当然也可以多个2、3等等,这个时候我们可以

拿到“=”后面的值就是Is library项目的地址。通过这个地址来编译到本地目录下,然后再打包,代码如下。

Maven集成Ant打包见:Android之Maven集成Ant多渠道打包


Ant核心代码:

<!-- third project -->
	<property name="thirdProject" value="../UIBase" />

	<!-- 编译需要的jar; 如果项目使用到地图服务则需要maps.jar -->
	<property name="android-jar" value="${sdk-platform-folder}/android.jar" />

<!-- 外部类库所在目录 -->
	<property name="external-lib" value="libs" />
	<property name="external-lib-ospath" value="${basedir}/${external-lib}" />

	<!-- 编译后的文件放置目录 -->
	<property name="outdir-target" value="target" />

	<!-- 生成class目录 -->
	<property name="outdir-classes-ospath" value="${basedir}/${outdir-target}" />

	<!-- Compile this other project. -->
	<target name="compileLibrary">
		<mkdir dir="${outdir-classes-ospath}/classes" />

		<javac encoding="GBK" target="1.6" extdirs="" srcdir="${thirdProject}" destdir="${outdir-classes-ospath}/classes" bootclasspath="${android-jar}" includeantruntime="on" source="1.6">
			<classpath>
				<fileset dir="${external-lib-ospath}" includes="*.jar" />
			</classpath>
		</javac>
		<echo>libs_classpath..${external-lib-ospath}</echo>
	</target>

	<target name="maven-apk" depends="deploy, compileLibrary">
		<!-- 通过 执行maven命令来打apk包,前提是先配置maven到环境变量  -->
		<exec command="mvn.bat">
			<arg value="-f" />
			<arg value="${basedir}/pom.xml" />
			<arg value="compile" />
			<arg value="package" />
		</exec>

		<echo level="verbose">--------BUILD SUCCESSFULL---------</echo>
	</target>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值