您的位置:首页 > 编程语言 > Java开发

eclipse ant 打包

2016-03-11 11:18 447 查看
参考帖子:http://www.cnblogs.com/yaozhongxiao/p/3523061.html http://bbs.csdn.net/topics/380199724
项目引入多个library工程和ndk工程
1.在每个library路径下输入命令:
android update lib-project -p ./
会增加:local.properties和build.xml文件表示正确执行
在build.xml中增加
<property name="aapt.ignore.assets" value="!.svn:!.git:\x3Cdir\x3E_*:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~:crunch" />
不然打包是会报错can't find referenced class
2.在主工程路径下输入
android update project --name com.xiaoji.emulator --target 14 --path ./ --subprojects
会增加:local.properties和build.xml文件表示正确执行
local.properties修改,如果项目有ndk工程需要再配置ndk路径,如果没有ndk工程可以不加
ndk.dir=D:\\android-ndk
-r9d-windows-x86_64\\android-ndk-r9d
[align=left]3.配置打包时key密码ant.properties[/align]

[align=left]key.store=D:/xxx.keystore[/align]
[align=left]key.store.password=xxxx[/align]
[align=left]key.alias=xxxx[/align]
[align=left]key.alias.password=xxx[/align]

[align=left]4.主工程目录下ant debug生成未签名的包[/align]
[align=left]ant release生成签名的包[/align]
[align=left]生成的包会放在bin目录下[/align]

[align=left]可能会出现的错误:[/align]
[align=left]1.报错:找不到符号[/align]
[align=left]解决办法:多个library可能存在相同jar包,删除相同的,应用同一份jar包[/align]
[align=left]http://cst.is-programmer.com/posts/23793.html[/align]
[align=left]2.报错:[/align]

[proguard] Note: the configuration refers to the unknown class 'com.google.vending.licensing.ILicensingService'
[proguard] Note: the configuration refers to the unknown class 'com.android.vending.licensing.ILicensingService'

解决方案:
proguard中增加:

-dontnote
**ILicensingService

-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService

[align=left]参考:http://stackoverflow.com/questions/14461024/unknown-classes-ilicensingservice-notes-when-obfuscating-android-project[/align]
[align=left]3.[/align]
[align=left]错误:Cannot run program "${ndk.dir}\ndk-build"[/align]
[align=left]说明需要重新编译so,如果需要编译so就增加文件,不需要就直接删除[/align]
[align=left]编译需在Cygwin环境下[/align]
[align=left]解决方案:[/align]
[align=left]在ndk工程下增加:custom_rules.xml[/align]
[align=left]内容:[/align]

<project
name=
"PPSSPP"
default
="help">

<property
name
="ndkbuildopt"
value=""/>

<target
name
="-pre-build">

<exec
executable
="${ndk.dir}/ndk-build.cmd"
failonerror=
"true">

<arg
line
="-j4 ${ndkbuildopt}"/>

<env
key
="NDK_MODULE_PATH"
path=
"..:../native/ext"/>

</exec
>

</target
>

<target
name
="clean"
depends="android_rules.clean">

<exec
executable
="${ndk.dir}/ndk-build.cmd"
failonerror=
"true">

<arg
value
="clean"/>

<env
key
="NDK_MODULE_PATH"
path=
"..:../native/ext"/>

</exec
>

</target
>
[align=left]</project>[/align]
[align=left]其中 <exec executable = "${ndk.dir}/ndk-build.cmd" failonerror= "true" >[/align]

"${ndk.dir}/ndk-build.cmd"视情况是否增加.cmd,可去ndk安装目录下查看有ndk-build.cmd和ndk-build两个文件

参考:http://stackoverflow.com/questions/7432449/android-ndk-build-with-ant-script
不需要重新编译so的话就不需要这个文件custom_rules.xml
4.错误: Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersion 9 in ./AndroidManifest.xml
5. 错误:can't find referenced class
http://bbs.csdn.net/topics/380199724
1)找到sdk 》tools》ant》build.xml文件
找到如下一行,value设置为crunch 即可

<property name="aapt.ignore.assets" value="crunch" />

2)<property name="aapt.ignore.assets" value="!.svn:!.git:\x3Cdir\x3E_*:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~:crunch" />
如果增加还是有错误,请查看各个library中指定proguard.config=proguard.cfg是否正确,删除这个指定,只留主工程的proguard.config
6:打包出现java.lang.OutOfMemoryError: GC overhead limit exceeded
sdk\build-tools\22.0.1\dx.bat set defaultXmx=-Xmx2048M加大
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android ant 打包 eclipse apk