Trying to figure out why calling a C ++ function returns int, the entire application crashes without any errors / warnings.
Here is the working code:
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; }
And this code disables the application without warning:
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 + test; }
Before the application crashes, I can see my log message (__ android_log_print) in log cat
EDIT: Even if I replace the "number + test" with "1", the application still crashes ... It only works if I return the "number" ...
EDIT # 2: Java Side Code:
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"); } }