问题标签 [android-native-library]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1091 浏览

linux - LDD:/usr/lib/aarch64-linux-gnu/libdl.so:找不到版本“LIBC”(./libNative.so 需要)

我想使用.SO我提取的 APK 中的本机库文件。在修复了很多错误之后,我发现了这个我不明白的地方。

我该如何解决?

0 投票
3 回答
1600 浏览

android - 错误:无法解析“:app@debug/compileClasspath”的依赖关系:无法下载twitter.aar(com.twitter.sdk.android:twitter:3.1.0)

有人请帮我解决这个问题。尝试了 Stack Overflow 和其他博客中提供的所有可能的解决方案。错误:

我已经尝试过的一些解决方法: 1. 取消选中离线模式 2. sdk 更新和更改目标 sdk 和最低 sdk 级别 3. gradle 版本和分发(url)版本应该相同 4. 将 Android Studio 更新到最新版本(3.5 .3) 并将所有依赖项迁移到 androidx

我的构建 gradle 文件:

0 投票
0 回答
259 浏览

android - Android Studio 中未定义函数 getauxval

所以我试图在我在 Android Studio 中编写的本机库中使用 getauxval 函数,但不幸的是我无法编译代码,因为该函数似乎不存在。

当我包含定义函数的标题 auxv.h 时,我可以在那里找到带有条件宏的函数:

我的 Android api 变量大于 18,无论如何我试图编辑和删除这个条件宏,它仍然没有工作......有谁知道如何修复它?谢谢!

0 投票
1 回答
456 浏览

android - Android Q 在发布版本上执行二进制文件

我有这段代码试图获取可执行二进制文件的名称,以便稍后执行它。该代码在 Q 之前的 Android 设备上运行良好,在 Android Q 设备上以调试模式执行时也运行良好,但null在发布模式下执行时返回。

我为此添加了一些日志记录,似乎该文件nativeLibraryDir在发布模式下不存在。

当谈到原生的东西时,我不是很擅长,我真的无法理解这里发生了什么。

尝试android:extractNativeLibs在清单中设置为任一值true,或者false 我也按照一些建议android.bundle.enableUncompressedNativeLibs=false在文件中尝试了gradle.propreties

但什么都没有!请帮忙。

0 投票
0 回答
519 浏览

android - android 项目在 Linux 上构建,但不在 Windows 上

我正在尝试构建包含本机代码的存储库。它在 Ubuntu 上构建没有任何问题,但在 Windows 上构建失败,显示此错误:

我通过为 Windows 安装 make 并将其添加到路径中解决了这个问题。但出现了另一个错误:

整个错误是:

还安装在 sdk 管理器和我的 local.properties 中的 LLDB、Cmake 和 NDK:

0 投票
1 回答
77 浏览

android - Nexus7 无法加载原生库

我尝试构建本地库(在我的例子中是 SQLite)以将它们添加到我的 Android 项目中。

我的问题:我的 Nexus7 与 Android 6.0.1 尝试从../lib/arm/libsqlite3.so路径加载它。但这条路不存在。

从一开始就:

  1. 我下载了sqlite-amalgamation-3310100.zip

  2. 在这个文件夹中,我创建了一个CMakeLists.txt包含以下内容的文件:

  1. 我用这个命令(后跟make)构建了库:

我为这 4 个 ABI 做了这个:armeabi-v7a、、arm64-v8a和。x86x86_64

之后,我将文件复制到.so文件app/src/main/jniLibs/<abi>夹中,文件夹结构如下所示:

当我现在运行该应用程序时,我收到以下错误消息:

为什么 Android 会尝试从lib/arm文件夹而不是从加载 lib lib/armeabi-v7a?当我对使用 Android 7.1.1 的不同设备执行相同操作时,它可以工作。

顺便说一句,Android Native Lib 演示项目也可以工作。当我查看它的 apk 时,本机库位于lib/armeabi-v7a文件夹中。那么,为什么当 Android Studio 编译原生代码时它可以工作,而当我添加预编译的原生库时却不行呢?

0 投票
1 回答
22 浏览

android - 检查失败:receiver != nullptr virtual (SIGABRT) 写入本地存储时

我有一个方法

写一个序列化的对象

以 JSON 文件的形式存储到本地存储。

当在 Gson 构建过程中对标识对象调用 .toJson() 时,会在本机层发生崩溃,该层提供了一个非常长的日志列表,以

并以

不生成墓碑。这是一段看似微不足道的代码,过去一直有效,不确定是什么变化导致了这种情况开始发生。我该如何调查是什么原因造成的?

0 投票
1 回答
1482 浏览

android - 在 Android 中从 SDK 28 迁移到 SDK 29 后,我的应用程序崩溃并面临:信号 11 (SIGSEGV)、代码 2 (SEGV_ACCERR)、Android Studio 3.4.1 中的错误

我只在 Android OS 版本 10 的 OnePlus、Samsung、Poco F1 中面临这个问题。

它适用于搭载 Android 10 的像素设备。

请在下面找到错误日志


任何人都可以帮助解决这个问题提前谢谢

0 投票
0 回答
21 浏览

android - 了解原生 android 崩溃日志中的不同部分

我有一个 android 崩溃日志,需要帮助理解一些事情

1) r0-r9, sl, fp, ip 代表什么

2)如何利用r0,r1,sl等附近的内存。有时有一些可读的字符可以用来解释。所以想了解如何将其与实际崩溃联系起来 3)

0 投票
1 回答
6528 浏览

java - 了解导致信号 11 (SIGSEGV)、代码 1 (SEGV_MAPERR) 几秒钟后出现错误的 Android 问题

我正在运行传感器和位置服务,数据被传递到 TraceManager 文件,在该文件中处理并传递给 TraceCWrapper 以映射到共享 C 库 .so ,看起来传感器和位置数据很好并收到在 TraceManager 中,它然后被传递到 TraceCWrapper,但是应用程序在几秒钟后崩溃,我得到的唯一错误行是:

A/libc:致命信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR),tid 29938 (AsyncTask #1) 中的故障地址 0x8,pid 29870 (pp.traceandroid)

我没有足够的空间来添加 TraceCWrapper 文件,但是库被加载为:

作为主要示例,方法 traceCWrapper.provideDeviceMotion() 在 TraceCWrapper 中被接收为:

您将不得不原谅大量的日志记录和多余的代码,因为我已经为此苦苦挣扎了一段时间。

传递我的 TCIMUEvent 时,我使用如下结构注释:

所需的 Java C 映射:

新的映射看起来像这样,对象的结构都与原始问题中的上述格式相同:

现在引发的错误与我的 Structure 对象中的空构造函数有关: