帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
12
帖子
0
勋章
213
Y币

[插件开发] as开发自定义模块打zip包上传不能使用

[复制链接]
发表于 2019-7-3 09:41:21
本帖最后由 yuanbao15 于 2019-7-3 13:42 编辑

自己做了一个讯飞语音唤醒+听写的模块,在as中模块开发测试功能ok后,就打包zip上传到apicloud平台上。编译loader、运行前端都没报错,调用模块方法后看控制台logcat报错:
  1. 2019-07-02 22:51:40.752 25298-25298/? E/MscSpeechLog: loadLibrary msc error:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.wuhan.yuanbao-Qowbf3_mgIEkN2vGkwzzAw==/base.apk"],nativeLibraryDirectories=[/data/app/com.wuhan.yuanbao-Qowbf3_mgIEkN2vGkwzzAw==/lib/arm, /system/fake-libs, /data/app/com.wuhan.yuanbao-Qowbf3_mgIEkN2vGkwzzAw==/base.apk!/lib/armeabi, /system/lib, /system/vendor/lib]]] couldn't find "libmsc.so"
复制代码

在as中是有这个so库的,在zip包中也是有lib和jni文件夹的。后来看了一位网友的帖子,说是apicloud平台编译loader时,会自动把armeabi-v7a中的libxxx.so库给过滤掉。
我把编译后的loader下载下来解压一看,确实只有一个armeabi的文件夹,里面只有apicloud自己的libsec.so,并没有我的libmsc.so库。
想请问下这个问题怎么解决,求帮助。是平台bug吗?我这儿没有armeabi架构的libmsc.so文件。
TIM图片20190703093305.png
yuanbao15
12
帖子
0
勋章
213
Y币
最佳答案
帖子终结了吧终于解决了。最终实现方式是:模块打包的aar中是有libs和jni文件夹分别包含了jar包和so库文件的;在打zip包时,另外弄个target文件夹,将libmsc.so文件直接放进去,不用有armeabi-v7a的文件夹。可能是apicloud平台打包时从aar中提取不到那个so,所以只能手动在外部再加一个。over。
380
帖子
4
勋章
6
Y币
20
帖子
0
勋章
6613
Y币
按官方的模块开发规范做,应该没有问题。
顶一下,等大佬来指点
12
帖子
0
勋章
213
Y币
yxWin 发表于 2019-7-3 09:49
按官方的模块开发规范做,应该没有问题。
顶一下,等大佬来指点

嗯嗯谢谢,是按官方来的,那个模块审核规范只有android eclipse的,没有android studio的。所以也没有source、target的文件夹,都在aar包中。这个问题折磨两天了哎。
10
帖子
0
勋章
879
Y币
yuanbao15 发表于 2019-7-3 10:06
嗯嗯谢谢,是按官方来的,那个模块审核规范只有android eclipse的,没有android studio的。所以也没有sou ...

解决了吗?
20
帖子
0
勋章
6613
Y币
yuanbao15 发表于 2019-7-3 10:06
嗯嗯谢谢,是按官方来的,那个模块审核规范只有android eclipse的,没有android studio的。所以也没有sou ...

有指南啊,多翻翻文档
https://docs.apicloud.com/Module ... -for-android-studio
12
帖子
0
勋章
213
Y币
本帖最后由 yuanbao15 于 2019-7-3 10:33 编辑

没有,等大佬。我试过很多次,比如把zip包中armeabi-v7a的libmsc.so直接放armeabi中,或者不要有armeabi文件夹,或者直接在loader的apk的lib中增加libmsc.so等等都不行,要么编译loader报错,要么运行报错。。崩了
12
帖子
0
勋章
213
Y币
本帖最后由 yuanbao15 于 2019-7-3 13:42 编辑

你这是模块开发指南啊,指南里面打zip包的介绍很简单,全篇已经翻看n遍了。我担心的是模块编译loader却过滤掉了我的so库的问题是不是模块审核规范的问题,所以提到了这个。

TIM图片20190703103037.png
12
帖子
0
勋章
213
Y币
还请了解这个问题的大佬指点一下
12
帖子
0
勋章
213
Y币
帖子终结了吧终于解决了。最终实现方式是:模块打包的aar中是有libs和jni文件夹分别包含了jar包和so库文件的;在打zip包时,另外弄个target文件夹,将libmsc.so文件直接放进去,不用有armeabi-v7a的文件夹。可能是apicloud平台打包时从aar中提取不到那个so,所以只能手动在外部再加一个。over。
TIM图片20190704102702.png
12下一页
您需要登录后才可以回帖 登录

本版积分规则