android-studio使用library延伸出的问题

说明

应该是2016年之前的记录,之前没有写文档记录的习惯,都是随手记录的txt文件,所以没有图片、格式等。甚至现在看来有些地方逻辑不通(可能还因为年少轻狂,有些偏颇的话语),但是这些与现在的我不重要了,所以也不打算再复现、推理,重新编辑等,仅仅是在旧硬盘中发现,删除之前觉得可能还有点价值,记录下来吧。

1:使用正常的项目(在studio中叫module)做library:
@1:修改module为library,编辑build.gradle中apply plugin: ‘com.android.application’改为apply plugin: ‘com.android.library’
@2:去除applicationId。可以直接修改build.gradle,也可以open module settings->Flavors->Application Id
@3:在主项目添加library。可以直接修改build.gradle,
dependencies {
compile fileTree(dir: ‘libs’, include: [’*.jar’])
testCompile ‘junit:junit:4.12’
compile ‘com.android.support:appcompat-v7:23.3.0’
// compile ‘com.google.android.gms:play-services-appindexing:8.1.0’
compile project(‘:zhuo_library’)//这个是添加的。
}
或者open module settings->dependencies按加号->3.module dependency

2:如果library中的Manifest文件也配置了,比如application属性图标等,主activity等。application属性图标会报错,解决办法可以使用:
在Manifest.xml的application标签下添加tools:replace=“android:icon, android:theme”(多个属性用,隔开,并且记住在manifest根标签上加入xmlns:tools=“http://schemas.android.com/tools”,否则会找不到namespace哦),但是activity这些如果不配置就会合并到主Manifest文件,比如出现两个主activity。
先说原因,eclipse和以前版本的android studio默认关闭Manifest Merger(合并)的。
据说eclipse可以在主Project的project.properties里加上manifestmerger.enabled=true 来开启Manifest Merger(合并)。
老版本android studio据说可以在build.gradle根标签上加上useOldManifestMerger true 关闭Manifest Merger(合并),但是新版不行了,该方法取消了。

所以现在关闭的方法只有在节点设置tools:node=“replace”
<application
tools:node=“replace”

或者也可以在manifest节点添加,这样library的manifest就不会合并到主项目了。
更具体的Manifest Merger细节参考:
http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger。
http://blog.csdn.net/maosidiaoxian/article/details/42671999
http://www.open-open.com/lib/view/open1455598198026.html

3:依然存在的问题:点击运行后可以按照apk但是无法启动,看下面的run命令里:
adb shell am start -n “com.zhuo.tong.wifi.adb/com.zhuo.tong.MainActivity” -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
正确的应该:
adb shell am start -n “com.zhuo.tong.wifi.adb/com.zhuo.tong.wifi.adb.MainActivity” -a android.intent.action.MAIN -c android.intent.category.LAUNCHER

不知道为什么还启动库的主activity而不启动主项目的。目前只能手动在手机上点开应用。要不就去掉库中的activity。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值