android cordova aar jar包 插件开发 如何兼容旧版android版
最近要集成 交通部的定位SDK,鉴于公司准备使用ionic进行开发,于是考虑对该SDK 进行插件封装。
cordova的android插件本质上使用的还是android,只是提供的是js的调用方法。
1 先来讲讲正常的插件开发流程 包含.aar,以下部分来自网络
如何建立一个全新的插件?引入一篇文章吧 https://www.cnblogs.com/VoiceOfDreams/p/11073447.html
网上很多教程了,大家可以参考。上面这篇文章讲述的是最基本的插件的内容。
2 那么如果要包含.aar或jar包的插件要怎么做?
先看完成的目录结构
1 先将aar或jar包拷贝至android目录中
2 建立并配置 (你的命名.gardle)
注意,这里不要用 implementation ,用compile。具体为什么,后面的报错也是这个原因,具体原因可以自己查询下,3.0版本后compile 指令被标注为过时方法,而新增了两个依赖指令,一个是implement 和api,这两个都可以进行依赖添加,而我用于测试的项目已经很古老了。
repositories{
jcenter()
flatDir {
dirs ‘src/main/libs’
}
}
dependencies {
compile(name:‘你要引入的aar’, ext:‘aar’)
}
android {
packagingOptions {
exclude ‘META-INF/NOTICE’
exclude ‘META-INF/LICENSE’
}
}
3 完善你的java逻辑代码 完成后的样子 ,这里的代码需要一点Android开发的基础。建议多看看其它插件的写法。其实大同小异。
4 js的编写
5 配置plugin.xml
既然这里可以多Manifest文件定义,是不是意味着我们可以对其进行uses-permission 的引入?举一反三
实际上是可以的。
到这里基本一款插件是完成了。
然后我们高高兴兴安装…
然后编译
果然革命没有那么容易成功
为什么会没有这个主题!!!这不是最常用的吗?于是打开实际项目的gradle 和资源文件查看。原来新引入的aar使用的那些资源均找不到,我的古老的ionic框架在platform自动生成的android又太古老,很多引入都没有。于是 在gradle 引入 compile ‘com.android.support:appcompat-v7:28.0.0’ ,引入各种报错的文件和资源。
问题解决。
思考:若新插件要兼容这个旧版本,那些缺失的string ,style等资源是不是也可以通过该插件一并加入?并通过plugin.xml进行配置?