java 调用 c 崩溃_java – 从本机函数(c,jni)返回一个int会导致应用程序崩溃

试图弄清楚为什么c函数调用返回一个int会导致整个应用程序崩溃而没有任何错误/警告.

这是工作代码:

jint Java_org_ntorrent_DummyTorrentInfoProvider_next(

JNIEnv * env,jobject obj,jint number)

{

jint test = rand();

__android_log_print(ANDROID_LOG_DEBUG,"HelloNDK!","rand() = %d",test);

return number;

}

此代码在没有警告的情况下崩溃应用程序:

jint Java_org_ntorrent_DummyTorrentInfoProvider_next(

JNIEnv * env,test);

return number + test;

}

在应用程序崩溃之前,我可以在log cat中看到我的日志消息(__ android_log_print)

编辑:

即使我用“1”替换“数字测试”,应用程序仍然崩溃…

它只有在我返回“号码”时才有效…

编辑#2:Java端代码:

package org.ntorrent;

import java.util.ArrayList;

import java.util.Random;

public class DummyTorrentInfoProvider implements TorrentInfoProvider {

public native Integer next(Integer number);

//public Integer next() { return _random.nextInt(); }

public native void test();

private Random _random = new Random(100);

@Override

public ArrayList getTorrents() {

test();

ArrayList torrents = new ArrayList();

torrents.add(

new TorrentInfo("test torrent number 1",next(1),3f,5f));

torrents.add(

new TorrentInfo("test torrent number 2",next(2),4f,15f));

torrents.add(

new TorrentInfo("test torrent number 555"));

torrents.add(

new TorrentInfo("test torrent number 3",next(3),13f,5f));

return torrents;

}

static {

System.loadLibrary("test");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值