美文网首页
鸿蒙智能手表Wearable使用JNI报找不到so文件

鸿蒙智能手表Wearable使用JNI报找不到so文件

作者: hongzhenw | 来源:发表于2023-07-24 12:33 被阅读0次

    当使用鸿蒙手机调试好JNI代码后,在Dev Studio Device Manager提供的Local Emulator和Remote Emulator上均崩溃。

    难道在手机上可以使用JNI,智能手表不支持?先说答案,是支持的。

    Dev Studio默认创建的是arm64-v8a,需要添加对应设备的cpu架构即可

    查看Local Emulator的cpu 架构
    1. 使用以下命令
    adb shell getprop ro.product.cpu.abi
    
    1. 得到
    x86_64
    
    1. 在build.gradle加上x86_64的配置
    externalNativeBuild {
        path "src/main/cpp/CMakeLists.txt"
        arguments ""
        abiFilters "arm64-v8a", "x86_64"
        cppFlags ""
    }
    
    1. Local Emulator运行JNI代码正常
    查看Remote Emulator的cpu 架构
    1. 使用以下命令
    adb shell getprop ro.product.cpu.abi
    
    1. 得到
    armeabi-v7a
    
    1. 在build.gradle加上x86_64的配置
    externalNativeBuild {
        path "src/main/cpp/CMakeLists.txt"
        arguments ""
        abiFilters "arm64-v8a", "x86_64", "armeabi-v7a"
        cppFlags ""
    }
    
    1. Remote Emulator运行JNI代码正常
    生成&引用so文件
    1. builder -》Rebuild Project即可,或者Make Module 'xxx',或者使用gradle命令
    2. 可在,build -》intermediates -》libs下,看到对应的debug和relase包
    3. 把对应的arm64-v8ax86_64armeabi-v7a文件夹拷贝到libs(与src文件夹同目录)文件夹下
    4. build.gradle添加*.so,如下:
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.so'])
    

    P.S:当然直接引用so的module lib也是可以的;打包hap的话,也可在hap包里看到对应的so文件

    相关文章

      网友评论

          本文标题:鸿蒙智能手表Wearable使用JNI报找不到so文件

          本文链接:https://www.haomeiwen.com/subject/mwgqpdtx.html