jjzjj

LoadLibrary

全部标签

android - 如何根据 android 中的 CPU 能力加载不同的 jni 库?

我有几个jni动态库(*.so),跟cpu能力有关,比如有的库支持armv7+neoncpu,有的库支持armv7+vfpv3cpu,有的库支持非armv7cpu。如何根据CPU能力动态加载它们?我试过下面的代码,但没有用。在这个解决方案中,我在下面的安装包中放置了3个不同名称的库版本:(原名是libavcodec.so)libavcodec_neon.so和libavutil_neon.solibavcodec_vfpv3.so和libavutil_vfpv3.solibavcodec_basic.so和libavutil_basic.so但是libavcodec.so依赖于liba

android - UnsatisfiedLinkError nativeLibraryDirectories=[/vendor/lib64,/system/lib64

情况如下:我有一个64位apk,它应该是来自/system/lib的32位共享对象(.so文件)。但是apk运行时崩溃,报:UnsatisfiedLinkErrornativeLibraryDirectories=[/vendor/lib64,/system/lib64我认为它试图从/system/lib64搜索我位于/system/lib中的.so文件,然后发生错误。如何让它从/system/lib而不是/system/lib64搜索? 最佳答案 发生这种情况是因为您bundle了至少一个64位native库。Android检测到

Android加载原生库

我正在尝试加载我使用独立NDK工具链构建的库。我构建了libGLmove.so并将它放在我的Eclipse项目的libs/armeabi中但是,调用System.loadLibrary("GLmove")会抛出一个UnsatisfiedLinkError关于如何解决问题或让Android找到我的图书馆有什么想法吗?ndk-build构建后如何打包库?编辑:确切的编译标志是:/Users/thomas/Documents/android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/darwin-x86/bin/arm-eabi-g++--sysr

android - Javacv 代码中的 Nvidia Tegra 2 芯片组(Android Samsung Tab)上的 System.LoadLibrary(libname) 崩溃

我使用Javacvcode在Andorid中制作了一个自定义相机.我没有包含所有的.so文件,而只包含了我的应用程序似乎需要的文件。如下面的屏幕截图所示:它适用于SamsumgGalaxyS2、S3和SonyEricssonXperiaArc。完全没有问题。但是当我尝试在SamsungP7500GalaxyTab10.1上运行它时,它在我使用的第一行Javacv代码上崩溃了,恰好是:yuvIplImage=IplImage.create(previewWidth,previewHeight,IPL_DEPTH_8U,2);这次尝试的Logcat输出:07-0813:30:13.930:

android - 在新项目中加入 vuforia android SDK

我想在我的新应用中使用vuforiasdk的文本识别模块。我已成功构建和运行他们的示例应用程序。但是,这样做显然不足以让我弄清楚如何在我的mew项目中以正确的方式开始使用vuforiaandroidsdk。IDE是AndroidStudio。我有我的vuforia帐户的许可证key。有人可以帮助我开始吗?我只是需要在我自己的个人项目中开始使用vuforia作为库。我不想直接在他们的示例应用程序上开始开发。如果问题的背景不适合这个特定社区,我很抱歉。 最佳答案 我想完全按照您说的去做。我不想在他们的样本之上构建。我努力寻找教程,但没有

android - 重用本地下载的 Android 库

我经常遇到电源和稳定的互联网连接问题。因此我想知道它是否是:可以将存在于我的现有本地项目中的库导入到新项目中。无需添加库依赖项(或者即使我必须添加依赖项,至少无需再次下载库。)例如,假设我有一个现有项目,我在其中使用Retrofit进行网络调用。现在,如果我创建一个需要再次使用Retrofit的新项目,有没有一种方法可以将Retrofit库或源代码从现有项目中获取到这个新项目中,而不必从互联网上重新下载库。如果可能,我如何在我的本地机器或现有的Android项目上访问这个库 最佳答案 是您可以导入您在使用Gradle之前使用的缓存库

Android - 调用 System.loadLibrary() 导致进程终止

我决定着手将一款使用SDL库并大量使用C++和STL的游戏移植到Android。我已经成功地编译了所有必需的库以及游戏的所有源文件。我的问题是,当我调用System.loadLibrary()加载游戏的.so时,应用程序立即崩溃并显示“Processorg.libsdl.app(pid3569)hasdied.”这是我将所有需要的库和游戏作为共享库加载的代码部分。static{//LoadtherequiredlibrariesforthegameSystem.loadLibrary("SDL");System.loadLibrary("SDL_image");System.loadL

android System.loadLibrary 加载文件的地方

网络上的一些文章告诉我System.loadLibrary()将加载/data/data/{apppackage}目录中的文件。我想知道这是否因每个供应商实现而异或固定? 最佳答案 最终由供应商来定义文件系统/文件系统布局。所以它可能在不同的地方。如果没有自定义定义,则库将位于/data/data/your.package.name/lib中。如果它在不同的目录中,那么System.loadLibrary会知道并从那个地方加载库。 关于androidSystem.loadLibrary加

android - 在运行时加载多个共享库在 Android 中不起作用

我正在使用cmake在AndroidStudio中创建我的共享库。库构建和链接正确,我能够在lib/armeabi-v7a下的Apk中看到我的所有库。库链接如下:库1库2库3Lib4图书馆5我通过调用System.loadLibrary("lib1");加载了我的Lib1我可以调用Lib1,但是一旦Lib1尝试访问Lib2,我就会收到一条传播消息,指出Lib2未加载。然后我想我必须加载其他库,所以我进行了以下调用但最终得到了相同的传播消息“Lib2未加载”。System.loadLibrary("lib5");System.loadLibrary("lib4");System.load

android - System.loadLibrary() 错误

我成功地使用androidndk-Standalone工具链交叉编译了一个c++库然后,我在Eclipse中创建了一个新的android应用程序项目,当我将mylib.so放入jni文件夹并执行ndk-build命令时,它工作正常Prebuilt:mylib.solibs/armeabi/mylib.so但是在添加的时候static{System.load("/data/data/my_package/lib/mylib.so");}我在logcat中收到错误消息AndroidRuntimeCausedby:java.lang.UnsatisfiedLinkError:Cannotlo