android-ndk相关内容

AOSP的libc++.so与NDK的libc++_shared.so相同吗?

我在一个Android应用程序中工作,其中一个共享库(我在Android Studio中构建的,我们称之为libA.so)动态加载供应商提供的另一个共享库(我们称之为libB.so)。我知道我不应该在我的应用程序(https://developer.android.com/ndk/guides/cpp-support.html#important_considerations)中使用多个C++运行 ..
发布时间:2022-06-10 16:27:39 移动开发

适用于Android的动画WebP编码器

有没有Android版WebP动画编码的例子, 或者可能有人成功了,可以引导我度过难关? 我有一批WebP图像,我想用它们创建一个动画图像 有libwebp库,但是它不支持动画WebP,如果我没看错的话,我需要使用‘webpmux’,我不知道如何集成和使用它。 我看到this post从08/11开始,它与我无关,因为我需要创建一个WebP动画,而不是一个。 即使有任 ..
发布时间:2022-05-19 10:09:58 移动开发

创建不带gradle、ant或cmake的仅JNI/NDK apk命令行

我为Android创建了一个只使用JNI和NDK的应用程序,除了连接我的代码与JNI所需之外,没有使用Java代码,因为这是一个使用OpenGL ES的应用程序,它将使用一个用于Linux和Android的代码。但是我不明白如何创建一个APK文件,而没有我现在不想要的许多东西。所以,我试着创建一个没有Gradle,Ant,Android-studio的应用程序…也只能使用命令行。 我现在还有 ..
发布时间:2022-03-02 22:53:48 移动开发

Android can't load local libcrypto unsatisfied link错误

我需要在我的应用程序中运行比操作系统中的更新版本的 openssl.我能够修补和 android 源以编译更新版本,然后提取共享库以在我的应用程序中使用. 然后,我能够编译并链接我的本机代码,该代码仅需要较新版本的 openssl 中的函数与我的新共享库(较新的 openssl 的补丁有效). 我还能够创建一些按预期工作的 jni 函数,但只要我添加了仅在应用程序本地较新的 opens ..

DetachCurrentThread 有时在 NDK 中崩溃

原谅我提出了一个非常模糊的问题,但是,我有一个纯原生 NDK 应用程序,它应该在沉浸式模式(即全屏)下执行. 沉浸式模式 JNI 片段在应用通过 APP_CMD_RESUME 恢复时执行.这在大多数情况下都有效,但是我的 SetImmersiveMode() 片段中的命令 activity->vm->DetachCurrentThread() 时不时会崩溃并导致致命例外: 致命异常:Thr ..

Android - '无法加载 Foo:findLibrary 返回 null'

我知道已经有关于堆栈溢出错误的帖子,但从我在 SO 和 Google 上找到的内容来看,这与我的问题不符. 我正在尝试运行我的应用程序,但是每当调用本机函数时,我的程序就会崩溃,并且我得到以下 LogCat... 08-01 09:15:57.448: E/AndroidRuntime(16966): FATAL EXCEPTION: main08-01 09:15:57.448: E/A ..
发布时间:2022-01-25 21:50:35 移动开发

JNI:读取 C 代码中的文本文件并返回到 sdk

我正在尝试创建一个 android 应用程序以使用 NDK 从文本文件中读取文本.我的 C 代码将字符串读入变量并将字符串变量返回给 java 代码.但是当我运行 Android 应用程序时,字符串显示在TextView 显示为@ 等符号,后跟一些矩形.从 JNI 返回字符串的格式是什么?检查下面的代码.我可以在没有任何其他权限的情况下读取系统文件吗? printf() 语句会做什么? Ja ..
发布时间:2022-01-25 21:46:31 其他开发

Android ndk(cmake):在第二个 jni 库中使用 log api 时,'未定义的引用`__android_log_write'

我使用 Android Studio 2.2 和 cmake 构建 jni 文件. 我想在 jni 文件中显示日志,但收到错误消息“未定义对 `__android_log_write 的引用". 我的 CMakeLists.txt 文件是: add_library( # 设置库的名称.本机库# 将库设置为共享库.共享# 提供源文件的相对路径.# 与它们的源在同一位置的相关标题# 文件 ..
发布时间:2022-01-25 21:39:24 移动开发

在 ... 中未找到 JNI_OnLoad 正在跳过初始化

我在过去一天左右一直收到此消息,直到现在它还没有造成问题.我早些时候让我的代码与我的本机库一起运行,但今天我添加了一些新函数,但它再次不起作用. LogCat 中没有显示错误,但我的程序只是在我的设备上立即打开和关闭.没有消息说应用程序已意外停止,只是屏幕上出现黑色闪烁. 我查看了 google 和 SO,但出现此消息的原因有很多.这是我的 LogCat: 08-03 10:44:5 ..
发布时间:2022-01-25 21:39:17 移动开发

如何使用 CMake 在 Android Studio 3.2 中创建静态库(.a 文件)

现在我在 Android Studio 3.2 中创建了一个包含 c++ 支持的新项目,它自然具有 native-lib.cpp,CMakeLists.txt 如下所示: add_library( # 设置库的名称.本机库# 将库设置为共享库.共享# 提供源文件的相对路径.src/main/cpp/native-lib.cpp) 现在如果我构建这个项目,我可以在一些“调试"目录中找到 libn ..

缓存 JNI 对象和线程安全(在 Android 中)

我正在使用本机线程 (pthreads) 编写 C++ 应用程序,我需要调用一些 Java 方法等.我不确定哪些 JNI 对象可以安全缓存,即存储在我的 C++ 对象中以供以后使用,可能/可能由不同的线程.我知道如果我的类的方法可以被不同的线程调用,我不能缓存 JNIEnv,而是缓存 JavaVM 并通过附加当前线程来获取 JNIEnv.但这是否也意味着我不能缓存从 JNIEnv 获得的任何东西? ..