#java #android #android-ndk #android-source
#java #Android #android-ndk #android-исходный код
Вопрос:
Здравствуйте, я пытался вызвать библиотеку JNI в Android Keyguard (frameworks / base / packages / SystemUI). Я смог сделать это в настройках Android, но теперь мне нужно, чтобы это вызывалось в Keyguard. В настоящее время общий объект находится в стадии сборки. Он находится в каталоге /system / lib64 (мой, используемый в настройках Android, также находится в 32-разрядной библиотеке). Он не вызывается, когда я должен его использовать. В logcat не отображаются ошибки, указывающие на отсутствие jni
Мой Android.mk Файл в /jni
папке.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MULTILIB := both
LOCAL_MODULE := liblock-jni
LOCAL_SRC_FILES := lock-jni.c
LOCAL_C_INCLUDES =$(JNI_H_INCLUDE)
LOCAL_CFLAGS = -O0 -g3
include $(BUILD_SHARED_LIBRARY)
Это объявление в моей функции для класса Java.
JNIEXPORT jstring JNICALL Java_com_android_keyguard_LockJni_stringFromJNI(JNIEnv *env, jobject thisObj , jstring inJNIStr) {
У меня есть метод, определенный подобным образом, чтобы вызывать его в моем классе jni. Это находится
package com.android.keyguard;
import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;
import android.util.Log;
public class LockJni
{
public native String stringFromJNI(String param);
static {
Log.d( "library loaded:", "hello");
System.loadLibrary("lock-jni");
}
public LockJni(){
}
}
Спасибо за помощь!!
Комментарии:
1. где вы вызываете stringFromJNI?
2. Я вызываю это в Android KeyguardAbsLayoutVIew