2016-03-22 29 views
0

, yerli yöntemi:jni, native lib yöntemini bulamıyor mu? Java

public native String hello();

package name: pack 

class name: Hello 

C++: yöntem adı:

jstring 
Java_pack_Hello_hello 
(
    JNIEnv* env, 
    jobject this 
) 

kullandığım ndk bu dosyayı, ancak uygulamanın çökmesine derlemek;

Bu satırı ekledikten sonra: extern "C" benim hello.cpp içine hata gider, her şey tamam. Öyleyse neden? Eğer JNI'yı Java yerli bildirimleri maç için işlevini bulmak mümkün olmayacaktır extern 'C' belirtmek yoksa

cevap

1

JNI kullanılan yöntem isimlerinin biçimi düzenli C ve C++ farklıdır. alternatif olarak, RegisterNatives()

'u deneyebilirsiniz.