由于公司发展需要决定由原生态开发转向混合开发。所谓混合开发就是我们android 开发人员和IOS开发人员各自对自己原生模块的代码进行封装,以便H5开发人员能够通过JS进行调用。 而原生和H5之间交互的媒介我们公司则选用了Apiclound 平台。

记录一下在封装apiclound自定义模块出现模块未绑定,应该从哪几方面考虑:

模块打Jar 包出现错误

  1. 我们知道android 打成jar 包是不含Resource文件夹下面的资源,有时候我们确实需要Resource文件夹下面的图片文件,音频文件,怎么办? 解决方案:把资源文件放置到Assets就可以解决该问题,通过context.getAssets().open(fileName) 读取文件即可。

  2. 打包成的 jar包中的.class 文件有且只能包含本模块中的类的.class文件,不应该包含引用jar包或者so包代码,有的时候jar中还会含有BuildConfig.class同样也删掉。除了手动删除文件我们也可以在build.gradle中写执行脚本也行,运行则是通过terminal控制台,输入 gradlew makeJar 脚本代码如下:

def SDK_BASENAME = "moduleName";//自定义模块名字def SDK_VERSION = "";def sdkDestinationPath = "build";def zipFile = file('build/intermediates/bundles/debug/classes.jar')task deleteBuild(type: Delete) {    delete sdkDestinationPath + SDK_BASENAME + SDK_VERSION + ".jar"}task makeJar(type: Jar) {    from zipTree(zipFile)    baseName = SDK_BASENAME + SDK_VERSION    destinationDir = file(sdkDestinationPath)    //过滤不需要的class    exclude "**/**/BuildConfig.class"    exclude "**/**/BuildConfig\$*.class"    exclude "**/R.class"    exclude "**/R\$*.class"    //只包含指定的class, com/module/....是我的module的路径,使用是替换成你自己的module路径    include "com/module/**/*.class"    include "/assets/**"}makeJar.dependsOn(deleteBuild, build)

生成的jar包中结构要类似于如下:

assets 文件夹根据项目需求来定,但是其它两个文件夹一定要有,尤其要注意META-INF ,如果没有该文件夹,上传到Apiclound,代码加载自定义的模块就会出现无法绑定自定义模块情况。
如果你的jar包是通过AndroidStudio的Rebuid Project 。在build/intermediates/bundles/debug 下得到的jar就要注意上面我说的了,一定要添加上META-INF.如果通过gradlew makeJar 则不存在此问题。

module.json书写不正确

module.json 中单个module格式如下:

多个对象时的module.json配置,对象与对象之间以逗号隔开:

一个文件下只能有唯一 一个module, 不存在多个 name class 。这里一定要注意。

严格遵守开发文档格式

这个一定要注意,可以在确认自己是严格按照开发文档格式开发之后,在考虑以上两点易错点。

在打出jar之后,可先在本地测试确认jar无误,再上传到Apiclound云平台上,注意测试工程lib下除了放置打成的jar包,还要放jar包引用的jar和 so包。

确认可以正常运行之后,上传自定义模块到Apiclound平台

最后使用ApicloundStudio 开发工具进行编译的时候,一定要拉一下最新代码,右键点击项目—–云端同步 —–更新,最后自定义编译Loder,将软件安装到手机上即可。

更多相关文章

  1. Android(安卓)Hybird App开发
  2. 如何分析和研究Log文件(转)
  3. android开发笔记之animation(一)
  4. Kotlin For Android简介——有趣实用的功能
  5. IOS和Android开发的一些个人感受
  6. 按下电源键到启动Home应用过程详解(一)
  7. iOS 开发者的 Android(安卓)第一课
  8. Android(安卓)简历
  9. Android用无线调试真机及在Eclipse的File Explorer中访问真机的D

随机推荐

  1. listview android:cacheColorHint,androi
  2. [置顶] Android按返回键退出程序但不销毁
  3. 如何关联androidSDK源代码
  4. 编写android jni代码时遇到的问题
  5. Android设定屏幕只竖屏或只横屏的两种方
  6. Android(安卓)中文 API (21) ―― DigitalC
  7. Android(安卓)全局Activity动画设置
  8. 浅谈Android(安卓)Surface机制
  9. Android(安卓)Activity四种加载方式
  10. 9.RatingBar