我有一个测试用例,其中java在C中调用了一个简单的例程,并带有几个参数,它返回一个字符串,它可以工作。Android本机代码崩溃
但是,当我编写我的真实代码时,它以与“调用目标异常”崩溃相同的方式。然后我把它简化为一个调用并返回一个字符串,它仍然崩溃。
这两种情况之间的一个区别是其中一个调用有6个浮点参数,另一个有14个浮动ars。第一个被调用的6-arg(一个设置),我得到了异常。
对调用本机代码的参数数量是否有任何实际限制?还是应该继续在别处查看我的代码?
对不起 - 我不能将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个浮标并返回一个String类型。 “设置”是我在碰撞时调用的例程的名称。
你介意发布您的本地函数的原型,对应的Java原型,它是失败的例子调用?相关的logcat条目也很有用。 – JesusFreke
14 args @ _ @ @重构? – Xorlev
感谢您向我保证问题不是arg限制。在我寻求更多帮助之前,我会再花一天时间 - 如果我能找到它,它会节省您的时间。我跑了logcat,看到了这个,也许你可以给我一个指向哪里看? –