यह पता लगाने की कोशिश कर रहा है कि क्यों एक 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, jobject obj, jint number)
{
jint test = rand();
__android_log_print(ANDROID_LOG_DEBUG, "HelloNDK!", "rand() = %d", test);
return number + test;
}
अनुप्रयोग क्रैश से पहले मैं लॉग बिल्ली में मेरी लॉग संदेश (__ android_log_print) देख सकते हैं
संपादित करें: भले ही मैं "नंबर + परीक्षण" को "1" के साथ प्रतिस्थापित करता हूं, फिर भी एप्लिकेशन क्रैश हो रहा है ... यह केवल खराब है ks अगर मैं "संख्या" ...
संपादित करें # 2 वापसी: जावा-साइड कोड:
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");
}
}
स्टैक स्मैश, या अन्य प्रकार की मेमोरी समस्याएं? –
जेवीएम से डंप प्राप्त करें और देखें कि वास्तव में क्या हो रहा है। हॉटस्पॉट के तहत इन समस्याओं को डीबग करने के विकल्प हैं - हालांकि एंड्रॉइड के बारे में कोई जानकारी नहीं है। यहां कोड ठीक है, समस्या कहीं और है। – Voo
त्वरित प्रतिक्रियाओं के लिए धन्यवाद, दोस्तों! मैं कल कोशिश करूँगा ... – 6opuc