问题标签 [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.
java - 将自定义 Java 数据模型传递给我的本机代码
我想我知道该怎么做,我只是想戳一下 SO 社区,看看我是否走在正确的轨道上,因为我没有从我的研究中看到任何关于这个特定主题的信息。
我有一些自定义 Java(数据模型)类,我希望在我的应用程序的本机 C++ 端可以访问这些类。我意识到这两个环境是相当独立的,所以我很可能必须在 c++ 中创建我的数据模型的“副本”,并在我的 nativeLib JNI 文件中初始化它们?
我假设我不能只是将 java 类“转换”为 c++ 类,因为编译器可能无法进行这样的转换。我必须通过 JNI 方法调用手动管理我需要的每个字段。
这是正确的,还是有更好的方法我不知道?
我想一个例子可能是这样的:
Foo.java
本机 lib.cpp
Foo.h
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 分钟。这是不可行的缓慢。
有什么办法吗??
谢谢,最好的问候//乔纳斯
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 文件夹。在这里你可以看到它:
android - 谷歌地图在 Android 10 上崩溃
我已经在 android 上实现了谷歌地图,直到 Android Pie 都可以正常工作。但是在 10 日,我遇到了以下崩溃。
如果需要任何其他详细信息,我将很乐意提供帮助。非常感谢您对此事的任何帮助或提示。
编辑-代码部分
布局
解决
方法经过多次试验和错误,发现错误是构建工具版本更改com.android.tools.build:gradle:3.5.1
为com.android.tools.build:gradle:3.3.1
修复它。
android - 发布版本中未安装本机库
我在让 ffmpeg 在我的发布版本中工作时遇到问题。它在我的调试版本上运行良好。我正在从本机库目录加载 ffmpeg,因此它符合 Android Q 中的最新更改。调试版本发现该库很好,但是当我构建发布版本时,它说该文件不存在。当我分析 APK 时,我在它们各自的 arch 文件夹中看到了这些库。
我尝试通过架构师拆分 apk 并使用 abi 过滤器。都没有奏效。
这是我的 build.gradle:
我只是无法解释为什么它适用于调试版本而不是在签名后。任何人都可以对此有所了解吗?
android - 意图广播:RegisterUponInstallReceiver、本机 ANR、无 Java 堆栈
Google/Android9 再次在本机代码库的某个地方崩溃,而没有通过 Java 堆栈跟踪或其他方式给出任何关于它发生的位置和原因的想法。
就我而言,它发生在三星 SAP 库发布的“REGISTER_AGENT”意图期间。
可能它与三星 SAP 库有关,但它仅适用于 Android9,并且不经常发生。
任何提示和帮助表示赞赏。
android - 来自android debuggerd的奇怪回溯
我对来自 android debuggerd 的一些回溯转储感到困惑
我确信我不会动态地将 libB.so 链接到 libA.so。但是回溯显示A::Test1::InTest2()
调用libB.so (std::__ndk1::mutex::lock()+4)
这个回溯是什么意思。
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文件?
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?