JeeseC
JeeseC
  • 发布:2020-11-26 17:52
  • 更新:2022-06-07 20:27
  • 阅读:5054

Uni-app 以Module方式开发Android插件,引入第三方资源包so文件,但无法读取

分类:uni-app

问题如上图所示,当我调用该功能(原生)报错,并退出程序。

我在Module中已经引入so文件,在本地项目中是可以找到资源的

build.gradle也已经配置好了相关参数,如下代码

apply plugin: 'com.android.library'  

android {  
    compileSdkVersion 30  
    buildToolsVersion "29.0.3"  

    defaultConfig {  
        minSdkVersion 19  
        targetSdkVersion 30  
        versionCode 1  
        versionName "1.0"  

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"  
        consumerProguardFiles 'consumer-rules.pro'  

        sourceSets{  
            main(){  
                jniLibs.srcDirs = ['libs']  
            }  
        }  

        multiDexEnabled true  

        ndk {  
            abiFilters 'armeabi'  
        }  

        buildTypes {  
            release {  
                minifyEnabled false  
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'  
            }  
        }  
    }  

}  

repositories {  
    flatDir {  
        dirs 'libs'  
    }  
}  

dependencies {  
    compileOnly fileTree(dir: 'libs', include: ['*.jar'])  

    compileOnly fileTree(dir: '../app/libs', include: ['uniapp-v8-release.aar'])  

    //noinspection GradleCompatible  
    compileOnly "com.android.support:recyclerview-v7:28.0.0"  
    //noinspection GradleCompatible  
    compileOnly "com.android.support:support-v4:28.0.0"  
    //noinspection GradleCompatible  
    compileOnly "com.android.support:appcompat-v7:28.0.0"  
    implementation 'com.alibaba:fastjson:1.1.46.android'  
    implementation 'com.facebook.fresco:fresco:1.13.0'  

}  

但是,依旧无法实现功能(录制小视频的功能,但界面需要高度自定义设计,参数设置)

2020-11-26 17:52 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com

好像cpu只支持v7a,v8a,x86,没有你的那种了

  • JeeseC (作者)

    我有加入全套so文件,也是报这个错误提示

    2020-11-27 17:09

  • 2***@qq.com

    回复 JeeseC: 你ndk那里要配置的cpu类型的

    2020-11-30 08:52

  • JeeseC (作者)

    回复 2***@qq.com: 有的,lib加入so文件,上述文件ndk也有配置,也是一样的的问题报错。

    2020-11-30 16:18

  • 2***@qq.com

    回复 JeeseC:

    ndk {

    abiFilters 'armeabi-v7a','arm64-v8a','x86'

    }

    2020-11-30 16:37

JeeseC

JeeseC (作者)

@2993277254@qq.com 我已经添加了,但这个报错还一样的

王者地带

王者地带 - 5+混合APP开发教程网 | http://www.html5-app.com | 咨询QQ: 2564034335

如果os文件是放在jniLibs 文件夹下就要把这个去掉

sourceSets{    
            main(){    
                jniLibs.srcDirs = ['libs']    
            }    
        }  

如果是放在libs 文件夹下,才需要 jniLibs.srcDirs = ['libs'] 来指定引用目录

  • 2***@qq.com

    你说的对,不然会有冲突

    2020-11-30 20:40

  • JeeseC (作者)

    说来也奇怪,我so文件放在jniLib,居然说找不到。然后我放到Libs中就说找到了。但是现在又出现其他奇奇怪怪的问题

    2020-12-02 10:59

JeeseC

JeeseC (作者)

解决方案:
把so文件放到主app下的Libs文件下(采用拖拽方式引入,根目录粘贴会出现加载不到情况,不知为何?)
至于为什么不能放在JniLibs下,我也不清楚,总之加载不到。

  • 2***@qq.com

    可能是缓存问题,记得添加新的包或者so文件clean一下项目

    2020-12-02 11:20

  • w***@163.com

    我怎么还是加载不到,build里要做什么配置吗?

    2021-03-18 16:59

w***@163.com

w***@163.com - 90后

请问解决了吗?我也是 不知道哪里的问题

小权

小权

有的第三方SDK没有提供某个架构的abi(比如X86),那就不能编写uniapp原生插件了吗

DejaVu8023

DejaVu8023

jniLibs和Libs是主app下的 还是moudel下的

DejaVu8023

DejaVu8023

我现在的问题是 android插件打包成aar包集成在HbuilderX,从HbuilderX运行的时候模拟器可以读取so并且调用方法 真机上就不行

  • 8***@qq.com

    请问你解决问题了吗

    2022-07-13 16:45

  • 1***@qq.com

    我也是这个问题

    2023-04-20 10:59

  • 1***@qq.com

    回复 1***@qq.com: 在android studio里真机运行能读到,用Hbuilder打包后真机运行就读不到了

    2023-04-20 11:01

  • 1***@qq.com

    回复 1***@qq.com: 我的找到问题了。把package.json里的"useAndroidX"改了就可以了。

    2023-04-20 15:04

  • 2***@qq.com

    我真机上load .so文件的时候一直找不到,你是怎么配置的,可以解答一下么?

    2023-05-26 09:13

该问题目前已经被锁定, 无法添加新回复