哪个网站推广比较好,宣传片拍摄报价明细,外贸网站推广怎么做,asp.net 网站管理工具 安全在工程中编译好的so库文件将在原始编译工程对应目录下#xff1a;build/intermediates/cxx/Debug/xxxxxx/obj/ 其目录结构如上所示#xff0c;包含生成的四个版本#xff0c;每个文件夹下均包含c/c源码编译成的Android版本的libnavi.so库和提供应用接口的libnavi-lib.so库。… 在工程中编译好的so库文件将在原始编译工程对应目录下build/intermediates/cxx/Debug/xxxxxx/obj/ 其目录结构如上所示包含生成的四个版本每个文件夹下均包含c/c源码编译成的Android版本的libnavi.so库和提供应用接口的libnavi-lib.so库。 后续应用需要将obj下面的文件全部拷贝到需要的工程目录下使用不是只用到libnavi-lib.so否则会报错java.lang.UnsatisfiedLinkError: dlopen failed: library libnavi.so not found: so库的引入步骤 由于这个是算法层调用一般将其单独引用在一个module中往往会新建module需要注意以下几点否则会报错。 1、新建的module一般直接采用No Activity待新建后将上述的文件夹放在该模块src/main下改名为jniLibs其结构如下 直接运行报错 Execution failed for task :app:processDebugResources. A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction AAPT2 aapt2-4.2.2-7147631-windows Daemon #0: Unexpected error during link, attempting to stop daemon. This should not happen under normal circumstances, please file an issue if it does. 报这个错误是因为主工程依赖的子工程不是一个library导致的 apply plugin: ‘com.android.application’ 改为 apply plugin: ‘com.android.library’ AAPT2 aapt2-4.2.1-7147631-linux Daemon 异常_this should not happen under normal circumstances,-CSDN博客 2、每个工程只需要一个aplication新建的module应该是作为主工程依赖的子工程的需要设置其为library同时要删除其applicationId否则会报错。 3、子工程的引入 需要在主工程的build.gradle里的dependencies引入子工程 implementationproject(:navigation) 4、在子工程中申明引用c/c源码功能函数接口 首先调用so库 static{ System.loadLibrary(navi-lib);//这里的navi是你的.so文件的名称不包含前缀lib和后缀.so } 然后申明调用接口函数 public native String helloworld(); 类似采用native依次将需要调用的函数引用进来便于后续使用。