ubuntu下编译apps应用模块的一些问题总结

泡在网上的日子 / 文 发表于2014-03-03 21:22 次阅读 android,ubuntu

预编译: . build/envsetup.sh

默认情况下编译会生成apk 和 odex 两个文件,其中apk里面是不包含classes.dex文件的,因此不能直接安装,如果要得到一个完整的apk 需要更改mk文件,有两种办法:
1.只更改需要编译的app项目中mk文件,增加 LOCAL_DEX_PREOPT := false
2. 上面的办法只能更改一个项目,可以将整个framework的默认编译设置一下:
/build/core/java_library.mk
查找 LOCAL_DEX_PREOPT := true
修改为 LOCAL_DEX_PREOPT := false

/build/core/package.mk
查找 LOCAL_DEX_PREOPT := true
修改为 LOCAL_DEX_PREOPT := false

重新加载编译环境  source build/envsetup.sh
这样就不再需要单独为每个模块设置了。

需要注意的两点:
1.编译的时候需要修改代码文件,不然很可能out中得到的apk不是新的,一般来说当你发现mm很快结束,几乎没有打印出什么编译信息的时候你就得考虑是不是没有真正编译。
2.默认的app模块AndroidManifest.xml文件需要按照 常规eclipse项目的AndroidManifest.xml修改下,不然很可能在某些手机上不能安装(安装包解析失败),这主要是因为如下几个因素导致的:
   android:versionCode="1"
   android:versionName="1.0"

   <uses-sdk
       android:minSdkVersion="8"
       android:targetSdkVersion="17" />
经过一晚的折腾,总算编译成功了,不容易啊,睡觉。

收藏 赞 (1) 踩 (0)
上一篇:使用QRCodeReaderView扫描二维码
现在的二维码扫描一般都是采用zxing,但是使用起来并不是很理想,因此我们需要对原始的zxing进行改进,在github上发现了一个开源项目,修改了zxing使其更好使用,如果你觉得不好使,还可以参照他的做法自己修改zxing。 其使用方法很简单: 1.将library 添加
下一篇:Android应用如何做到自动更新
一般app应用商店中提供了安卓软件的升级功能,但是很多app都在第三方商店升级之外增加了自己的升级方式。这是如何做到的呢? “这是如何做到的呢?”这个问题是我们在搞android开发的时候容易进入误区的体现。其实抛开安卓这个概念,一个东西如果想更新版本