问题标签 [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 投票
2 回答
84 浏览

java - 将自定义 Java 数据模型传递给我的本机代码

我想我知道该怎么做,我只是想戳一下 SO 社区,看看我是否走在正确的轨道上,因为我没有从我的研究中看到任何关于这个特定主题的信息。

我有一些自定义 Java(数据模型)类,我希望在我的应用程序的本机 C++ 端可以访问这些类。我意识到这两个环境是相当独立的,所以我很可能必须在 c++ 中创建我的数据模型的“副本”,并在我的 nativeLib JNI 文件中初始化它们?

我假设我不能只是将 java 类“转换”为 c++ 类,因为编译器可能无法进行这样的转换。我必须通过 JNI 方法调用手动管理我需要的每个字段。

这是正确的,还是有更好的方法我不知道?

我想一个例子可能是这样的:

Foo.java

本机 lib.cpp

Foo.h

0 投票
1 回答
116 浏览

android - Android Studio Native .SO 库和 ARM 虚拟化问题

我有一个针对 ARM64-v8a 和 Oreo 8.1 的项目,它适用于手持设备,而不是手机。问题是我需要使用一些预建的 .SO 库。我没有源代码,只有 SO 文件。我只有以下架构的 .so 文件:arm64-v8a armeabi armeabi-v7a(由第 3 方创建)

问题是在虚拟设备上调试几乎是不可能的,因为我没有 x86 兼容的库。如果我选择 x86 虚拟设备,则库将不会加载,因为没有 x86 文件夹。如果我将库复制到 x86 文件夹。然后库将失败,因为它们不是正确的架构。如果我创建一个虚拟 arm64 设备,我只能找到适用于 android 7.1 版的图像(可在 Android Studio 中下载),这并不理想,甚至启动虚拟设备也需要大约 10 分钟。这是不可行的缓慢。

有什么办法吗??

谢谢,最好的问候//乔纳斯

0 投票
0 回答
345 浏览

android - VS2019 Android - 参考附加库 (*.so)

VS2019 解决方案中有一个原生 Android (c++) 库项目。该项目引用了一些库 (*.so) 以便构建。

当库位于项目文件夹中时,项目构建成功。但是,如果它们位于子文件夹中,“附加库目录”选项似乎没有帮助。(绝对已经尝试过相对路径)

选项: 在此处输入图像描述

生成的命令行参数:

如何为链接器指定其他 *.so 文件的位置?
(使用 CLang 5.0 和 android-26 API)。

0 投票
2 回答
454 浏览

c# - AndroidJavaClass/AndroidJavaObject 导致构建的应用程序崩溃

在将以下代码引入场景中的对象之前,我有一个构建和运行 find 的 Android 应用程序。我的目标是为我的应用程序以不同的长度振动,而不仅仅是使用默认Handheld.Vibrate()功能。添加此代码后,我的应用程序仍然可以很好地构建到我的设备上,但在启动时会崩溃。

我正在使用 Unity 2019.2.9f1,我的最低 API 级别设置为 25,使用 Mono 和 .NET 2.0。

我知道导致崩溃的是顶部的 AndroidJavaClass/AndroidJavaObject 调用。我在 Android Studio 中检查了 logcat 中的日志,但没有明显的输出与崩溃有关。有什么我没有考虑到的会导致这种情况吗?

编辑:我应该补充一点,我正在使用具有自己的 AndroidManifest.xml 的 SDK(Mapbox)。它指示您重命名它并将其移动到 Plugins/Android 文件夹。在这里你可以看到它:

0 投票
1 回答
763 浏览

android - 谷歌地图在 Android 10 上崩溃

我已经在 android 上实现了谷歌地图,直到 Android Pie 都可以正常工作。但是在 10 日,我遇到了以下崩溃。

如果需要任何其他详细信息,我将很乐意提供帮助。非常感谢您对此事的任何帮助或提示。

编辑-代码部分

布局

解决 方法经过多次试验和错误,发现错误是构建工具版本更改com.android.tools.build:gradle:3.5.1com.android.tools.build:gradle:3.3.1 修复它。

0 投票
0 回答
468 浏览

android - 发布版本中未安装本机库

我在让 ffmpeg 在我的发布版本中工作时遇到问题。它在我的调试版本上运行良好。我正在从本机库目录加载 ffmpeg,因此它符合 Android Q 中的最新更改。调试版本发现该库很好,但是当我构建发布版本时,它说该文件不存在。当我分析 APK 时,我在它们各自的 arch 文件夹中看到了这些库。

我尝试通过架构师拆分 apk 并使用 abi 过滤器。都没有奏效。

这是我的 build.gradle:

我只是无法解释为什么它适用于调试版本而不是在签名后。任何人都可以对此有所了解吗?

0 投票
0 回答
233 浏览

android - 意图广播:RegisterUponInstallReceiver、本机 ANR、无 Java 堆栈

Google/Android9 再次在本机代码库的某个地方崩溃,而没有通过 Java 堆栈跟踪或其他方式给出任何关于它发生的位置和原因的想法。

就我而言,它发生在三星 SAP 库发布的“REGISTER_AGENT”意图期间。

可能它与三星 SAP 库有关,但它仅适用于 Android9,并且不经常发生。

任何提示和帮助表示赞赏。

0 投票
0 回答
291 浏览

android - 来自android debuggerd的奇怪回溯

我对来自 android debuggerd 的一些回溯转储感到困惑

我确信我不会动态地将 libB.so 链接到 libA.so。但是回溯显示A::Test1::InTest2()调用libB.so (std::__ndk1::mutex::lock()+4)

这个回溯是什么意思。

0 投票
1 回答
1661 浏览

android - AndroidRuntime:java.lang.UnsatisfiedLinkError:dlopen 失败:找不到库“libandroidicu.so”

我正在使用运行 Android 10 的 Google Pixel 2。手机已植根。

当我安装我的应用程序时,它给出错误AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: library "libandroidicu.so" not found

所以我在 /system/lib/ 中寻找libandroidicu.so,但它不存在。

从哪里可以得到这个libandroidicu.so文件?

0 投票
2 回答
913 浏览

python - Use And Import .SO Native Library From Apk In Python

How do I import and use an .SO file that I extracted from apk file? I've used ctypes library in Linux but it gave me error on every way I tried it.

There are 2 version of the .so files: arm64, and armeabi. When i tried import the armeabi version, which is 32-bit, it gave me

and so I try the arm64, and somehow I got

I can assure you it is not a typo path, I tried to copy it using the same path. but I cannot import it because no such file.

code:

Is this how I am supposed to do it? Or there is another way?