如何在Android Gradle中添加原生so文件依赖

如何在Android Gradle中添加原生so文件依赖,第1张

在androidstudio里app下添加libs文件夹,下面新建armeabi,把so放进去

在app build.gradle里android下添加:

ndk{

abiFilters "armeabi"

}

并添加:

sourceSets {

main {

jniLibs.srcDirs = ['libs']

}

}

继续添加:

externalNativeBuild {

cmake {

path "CMakeLists.txt"

}

}

然后按照规定建package,建类,在类里调用so文件

static {

System.loadLibrary("videodecoder")

}

并编写native方法,就完成了

主要是工作和硬件打交道过.而且公司用的JNI.然后dll就在工程根目录很多

想封装一下.那某些库要用的jni封装到那个库里面.

遂试了一下.

static

{

System.loadLibrary("a")

}

如果把a和a的依赖bcdef全部放在工程根目录.能够正常加载

但是如果在工程根目录新建一个叫dll的dir

然后通过-Djava.library.path=SRC_ROOT/dll

这样.就会报hs_err.虚拟机直接崩溃了.

说明应该是依赖没找到

但是我把dll的名字改成dll2

去启动就报no ain java.library.path

那说明其实参数设置是有效的啊

我就奇怪了.这个a的依赖他到底是不是有java层面的libraryPath去找的.

因为dll的加载都是在classLoad

NativeLibrary lib =newNativeLibrary(fromClass,name,isBuiltin)

nativeLibraryContext.push(lib)

try{

lib.load(name,isBuiltin)

}finally{

nativeLibraryContext.pop()

}

if(lib.loaded) {

loadedLibraryNames.addElement(name)

libs.addElement(lib)

return true

}

static classNativeLibrary {

// opaque handle to native library, used in native code.

longhandle

// the version of JNI environment the native library requires.

private intjniVersion

// the class from which the library is loaded, also indicates

// the loader this native library belongs.

private finalClassfromClass

// the canonicalized name of the native library.

// or static library name

Stringname

// Indicates if the native library is linked into the VM

booleanisBuiltin

// Indicates if the native library is loaded

booleanloaded

native voidload(String name, booleanisBuiltin)

是个native方法.我就怀疑是不是jvm这B.根本没有管这个参数?

但是网上大佬都说可以啊..

我迷了.

LoadLibrary不是加载DLL文件,LoadLibrary出现是系统设置错误导致。

如下参考:

1.按下Win+R组合键,输入控件,点击“确定”按钮,打开控制面板,如下图所示。

2.在控制面板界面,点击“硬件和声音”按钮,如下图所示。

3.再次点击“电源选项”按钮。

4.根据需要修改“balance”、“highperformance”等计划属性,分别点击“changeplanSettings”按钮。

5.再次点击“更改高级电源设置”按钮。

6.在电源选项窗口中,找到“可切换动态显卡-全局设置-性能最大化”选项,将相应的“用电量”和“开机电量”修改为“性能最大化”。此时,设置了power属性。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11224922.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存