Calling C++ functions from native code
So far, we have called a C function implemented in the c_functions.c source
, so, in the next section, we will show you how to call a C++ member class.
First, we will add the isPrimeCPlusPlus
native method to MyNativeActivty
that returns String
as a result. Let's see how the native function declaration will look:
public class MyNativeActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { ... TextView cPlusTv = (TextView) findViewById(R.id.helloFromCPlusPlus); cPlusTv.setText(isPrimeCPlusPlus(4)); } public native String isPrimeCPlusPlus(int number); }
Running the javah
tool against the new MyNativeActivity
class definition will generate a new function declaration with the following signature:
JNIEXPORT jstring JNICALL Java_com_packpublishing_asynchronousandroid_chapter9_MyNativeActivity_isPrimeCPlusPlus(JNIEnv *, jobject, jint);
Next, we are going to implement the prime function...