apk中未加载模块.so,但已在构建中生成
创始人
2024-09-08 22:30:42
0

这种问题通常出现在使用Native代码时。其中,Native代码是由C、C++或其他类似的语言编写而成的,然后将其编译成Android平台支持的共享库文件(.so)。在构建过程中,编译器会将代码打包成apk中的可执行文件。

如果出现“Module .so not loaded in apk, but is built”问题,通常会提示以下错误:

java.lang.UnsatisfiedLinkError: No implementation found for long xxxxx

其中,xxxxx是链接到所需共享库的本机函数的名称。这意味着应用程序需要该模块以便运行,但在apk中未加载该模块。

因此,我们需要在构建中包含这个.so文件,使其在运行时被加载。我们可以在app的build.gradle文件中增加以下配置:

android {
   ...
   defaultConfig {
      ...
      ndk {
         //设置.ndk模块的路径
         abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64','mips','mips64'
       }
   }
   ...
}

sourceSets {
    main {
      //设置.so文件的路径
        jniLibs.srcDirs = ['src/main/libs']
    }
}

在这个配置中,我们将ndk模块的路径和我们需要的so文件夹的路径都设置好了。接下来,通过在代码中声明所需的本地方法,而不是直接使用它们,就可以解决这个问题。例如:

public native long xxxxx();

然后,在调用此方法之前,需要将该共享库加载到应用程序中:

static {
    System.loadLibrary("xxxxx");
}

通过这种方式,我们就可以将我们所需的so文件正确地打包到apk中,并在需要时将其加载。这样,应用程序就可以运行我们的Native代码了。

相关内容

热门资讯

玩家必看!微信小程序多功能辅助... 玩家必看!微信小程序多功能辅助,欢乐达人暗宝源码,科技开挂辅助教程(有挂讲解);无需打开直接搜索打开...
终于清楚!小程序牵手跑得辅助,... 终于清楚!小程序牵手跑得辅助,随意玩有辅助吗,分享开挂辅助教程(有挂细节);无需打开直接搜索加(薇:...
实测必看!福麻圈跑得快辅助功能... 实测必看!福麻圈跑得快辅助功能,战神辅助官方,关于开挂辅助教程(有挂技术);无需打开直接搜索薇:13...
重大发现!新海豚辅助工具,九酷... 您好:新海豚辅助工具这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特...
一分钟教会你!财神十三张脚本效... 一分钟教会你!财神十三张脚本效果图,川友汇辅助软件,传授开挂辅助教程(有挂教学);无需打开直接搜索加...
必备科技!闲来辅助器免费,四川... 必备科技!闲来辅助器免费,四川徒有辅助软件,发现开挂辅助教程(有挂工具);无需打开直接搜索打开薇:1...
一分钟揭秘!福建十三水辅助,越... 一分钟揭秘!福建十三水辅助,越乡游辅助器,通报开挂辅助教程(有挂功能);无需打开直接搜索加(薇:13...
总算了解!科乐填大坑作弊视频,... 总算了解!科乐填大坑作弊视频,威信茶馆解码器,关于开挂辅助教程(有人有挂);无需打开直接搜索加薇13...
揭秘关于!雀友会广东潮汕麻雀辅... 揭秘关于!雀友会广东潮汕麻雀辅助,贪吃蛇辅助器2022,曝光开挂辅助教程(有挂存在);无需打开直接搜...
必备教程!随意玩正版房卡有开挂... 必备教程!随意玩正版房卡有开挂,uuganmes辅助器,关于开挂辅助教程(有挂规律);无需打开直接搜...