框架

在移动端时代,Odoo也做了不少工作,其中就包括安卓APP开发框架。在Github上虽然星星才二百多,但对有需要的人来说绝对是个好东西。当然,对于安卓大咖且熟悉Odoo的Developer来讲,他完全可以自己搞一套,否则就乖乖的用官方的框架吧。

当然,Odoo现在凭借企业版的响应式来做移动端,这个框架呢就不是很活跃了,目前只有微量更新。所以,要有进坑的心理准备。

文档

我是在没了解Java、不了解Android的情况下开始学习Odoo安卓APP的开发,所以有个简单清晰的文档是很有帮助的。官方对于这个框架有一个不错的文档。传送门

坑No.1

Android Studio默认的情况下是开启Instant Run功能的,然而启用该功能的情况下,Debug方式是存在问题的。

我遇到的问题首先就是“闪退”,闪的速度极快,根本不知道什么情况。使用Debug模式能够看到错误信息,其中最关键的贴出来:Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.odoo.core.orm.OModel.getModelName()' on a null object reference

看代码能够定位到:public voidmakeReady(Context context) {

try{

DexFile dexFile = newDexFile(context.getPackageCodePath());for(Enumeration item = dexFile.entries();item.hasMoreElements();) {

String element = item.nextElement();if(element.startsWith(App.class.getPackage().getName())) {

Class<? extendsOModel> clsName = (Class<? extendsOModel>) Class.forName(element);if(clsName != null&& clsName.getSuperclass() != null&&

OModel.class.isAssignableFrom(clsName.getSuperclass())) {

String modelName = getModelName(context,clsName);if(modelName != null) {

this.models.put(modelName,clsName);}

}

}

}

} catch(Exception e) {

e.printStackTrace();}

}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐