Android 原生代码崩溃

标签 android crash native

我有一个测试用例,其中 java 使用几个参数调用 C 中的一个简单例程,它返回一个字符串并且它可以工作。

但是,当我以同样的方式编写真实代码时,它会因“调用目标异常”而崩溃。然后我将其简化为仅调用并返回字符串,但它仍然崩溃。

这两种情况之间的一个区别是,其中一个调用有 6 个浮点参数,而另一种调用有 14 个浮点参数。 6-arg 的一个首先被调用(一个设置),然后我得到了异常。

调用 native 代码时可以使用的参数数量是否有任何实际限制?或者我应该继续在其他地方查看我的代码是否存在问题?

抱歉 - 我无法将 logcat 格式化为评论,因此我将其作为编辑发布。这是 logcat,有什么建议我应该看哪里吗? “未找到实现”是什么意思?

D/dalvikvm(  531): Added shared lib /data/data/com.kinyur.etold/lib/libgalib.so 0x405133e0
D/dalvikvm(  531): No JNI_OnLoad found in /data/data/com.kinyur.etold/lib/libgalib.so 0x405133e0, skipping init
W/dalvikvm(  531): No implementation found for native Lcom/kinyur/etold/NativeLib;.setup (FFFFFF)Ljava/lang/String;
D/AndroidRuntime(  531): Shutting down VM
W/dalvikvm(  531): threadid=1: thread exiting with uncaught exception (group=0x40015560)
E/AndroidRuntime(  531): FATAL EXCEPTION: main

该例程使用 6 个 float 调用并返回 String 类型。 “setup”是我在崩溃时调用的例程的名称。

最佳答案

我不知道 JNI 方法的参数数量有任何限制

关于Android 原生代码崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7375579/

相关文章:

python - 我是 Python 新手,在向程序添加一行代码后设法使 IDLE 崩溃

google-chrome - 打开一个窗口来选择文件时,PinguyOS 12.04上的google-chrome始终会崩溃

java - 使用 JNA 使用 native Fortran 库时查找 SIGSEGV 原因时出现问题

java - 如何使用此 uri 上传到 firebase 存储?

android - Android 中的 Web 服务 SOAP

android - 如何初始化 MediaFormat 以配置 MediaCodec 来解码原始 AAC 数据?

iphone - 更改数据模型后保存在设备上时崩溃

java - 加载后是否可以获取 native 库信息

android - 在 Android 8 中从 native 访问 ro.serialno?

android - layout_height ="wrap_content"不适用于 android.support.design.widget.TabLayout