diff options
author | Dianne Hackborn <hackbod@google.com> | 2010-10-24 14:56:38 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2010-10-24 14:56:38 -0700 |
commit | e21d91c694e828e6285cc50e79b2a6be6e8c692b (patch) | |
tree | bff7d5088aa8dc568c33a1c68a7dbd976ebe0f58 /core/jni | |
parent | b6a2256e5461160a89d077b761d3253d95ce869f (diff) | |
download | frameworks_base-e21d91c694e828e6285cc50e79b2a6be6e8c692b.zip frameworks_base-e21d91c694e828e6285cc50e79b2a6be6e8c692b.tar.gz frameworks_base-e21d91c694e828e6285cc50e79b2a6be6e8c692b.tar.bz2 |
Fix issue #3126018: No way to specify NativeActivity's native method
Change-Id: I59de6a543e7f7f45d963a905829a3f56f32bf8cf
Diffstat (limited to 'core/jni')
-rw-r--r-- | core/jni/android_app_NativeActivity.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/core/jni/android_app_NativeActivity.cpp b/core/jni/android_app_NativeActivity.cpp index 63d3578..45fd5a0 100644 --- a/core/jni/android_app_NativeActivity.cpp +++ b/core/jni/android_app_NativeActivity.cpp @@ -626,7 +626,8 @@ static int mainWorkCallback(int fd, int events, void* data) { // ------------------------------------------------------------------------ static jint -loadNativeCode_native(JNIEnv* env, jobject clazz, jstring path, jobject messageQueue, +loadNativeCode_native(JNIEnv* env, jobject clazz, jstring path, jstring funcName, + jobject messageQueue, jstring internalDataDir, jstring externalDataDir, int sdkVersion, jobject jAssetMgr, jbyteArray savedState) { @@ -640,8 +641,11 @@ loadNativeCode_native(JNIEnv* env, jobject clazz, jstring path, jobject messageQ env->ReleaseStringUTFChars(path, pathStr); if (handle != NULL) { + const char* funcStr = env->GetStringUTFChars(funcName, NULL); code = new NativeCode(handle, (ANativeActivity_createFunc*) - dlsym(handle, "ANativeActivity_onCreate")); + dlsym(handle, funcStr)); + env->ReleaseStringUTFChars(funcName, funcStr); + if (code->createActivityFunc == NULL) { LOGW("ANativeActivity_onCreate not found"); delete code; @@ -999,7 +1003,7 @@ finishPreDispatchKeyEvent_native(JNIEnv* env, jobject clazz, jint handle, } static const JNINativeMethod g_methods[] = { - { "loadNativeCode", "(Ljava/lang/String;Landroid/os/MessageQueue;Ljava/lang/String;Ljava/lang/String;ILandroid/content/res/AssetManager;[B)I", + { "loadNativeCode", "(Ljava/lang/String;Ljava/lang/String;Landroid/os/MessageQueue;Ljava/lang/String;Ljava/lang/String;ILandroid/content/res/AssetManager;[B)I", (void*)loadNativeCode_native }, { "unloadNativeCode", "(I)V", (void*)unloadNativeCode_native }, { "onStartNative", "(I)V", (void*)onStart_native }, |