Android抽取Module问题总结
2016-07-07 13:24
288 查看
最近项目不算太忙,要将登录这块抽成Model的形式,在以后如果公司还有开发其他项目,直接可以引用,因为项目是AndroidStudio,毫无疑问,要创建module的依赖了(相当于eclipse的jar包形式)
1 创建module--》选择 Android Library--》xxModel(注意包名不要和宿主项目的包名一样,可以在宿主包名后加上xxModel,显得专业一些,起码可以表示是公司的model吧)。
2 创建好后,在宿主也就是app的gradle里依赖这个module(compile project(‘xxModel’),然后AndroidStudio会提示AsycNow,要求重新编译项目,你点击即可。
3 前两步完成后,基本上这个xxModel就做好了,你可以从宿主app拷贝(最好不要拷贝,下面会说一些注意事项),或者自己写相关基类,相关的界面,最好是可构造出来的界面以及自定义的组合控件,方便宿主直接继承,少写代码的目的,业务逻辑的话当然要在宿主app里完成,model里边的只是一些公用,常用的控件,业务的耦合还是要在宿主app内完成。
注意事项(是我的血泪史)
1 当时从宿主app复制布局,图片等到module里,拷贝完没有删宿主app里的布局,而module里边的布局名字等都和宿主app的一致,导致一直报错,最常见的是这种错误,ClassCastException com.xxx.xxx.widget cannot be cast xx.widget,是因为布局layout的名字一样,导致在module里,也是优先使用宿主app里的布局,更改module的布局名字或者把宿主app
里相同的需要抽取的布局删掉即可
2 我这个自定义控件报错比较多,注意自定义控件的包名要写全部,可能还是拷贝的问题,最好自己建立重新命名吧
3 既然要抽取模块,就别给自己留有退路,复制完直接删掉宿主app里拷贝相关的布局图片等,就不会发生此类问题,写个博客,以此留念,希望大家不要犯和我相同的问题!
1 创建module--》选择 Android Library--》xxModel(注意包名不要和宿主项目的包名一样,可以在宿主包名后加上xxModel,显得专业一些,起码可以表示是公司的model吧)。
2 创建好后,在宿主也就是app的gradle里依赖这个module(compile project(‘xxModel’),然后AndroidStudio会提示AsycNow,要求重新编译项目,你点击即可。
3 前两步完成后,基本上这个xxModel就做好了,你可以从宿主app拷贝(最好不要拷贝,下面会说一些注意事项),或者自己写相关基类,相关的界面,最好是可构造出来的界面以及自定义的组合控件,方便宿主直接继承,少写代码的目的,业务逻辑的话当然要在宿主app里完成,model里边的只是一些公用,常用的控件,业务的耦合还是要在宿主app内完成。
注意事项(是我的血泪史)
1 当时从宿主app复制布局,图片等到module里,拷贝完没有删宿主app里的布局,而module里边的布局名字等都和宿主app的一致,导致一直报错,最常见的是这种错误,ClassCastException com.xxx.xxx.widget cannot be cast xx.widget,是因为布局layout的名字一样,导致在module里,也是优先使用宿主app里的布局,更改module的布局名字或者把宿主app
里相同的需要抽取的布局删掉即可
2 我这个自定义控件报错比较多,注意自定义控件的包名要写全部,可能还是拷贝的问题,最好自己建立重新命名吧
3 既然要抽取模块,就别给自己留有退路,复制完直接删掉宿主app里拷贝相关的布局图片等,就不会发生此类问题,写个博客,以此留念,希望大家不要犯和我相同的问题!
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件