diff --git a/jni/Android.mk b/jni/Android.mk index 0ae994c96..a6368ae2a 100644 --- a/jni/Android.mk +++ b/jni/Android.mk @@ -33,7 +33,7 @@ SHAREDIR_MACRO := nativeShare LOCAL_MODULE := NativeFormats-v1 LOCAL_CFLAGS := -Wall -DBASEDIR=\"$(SHAREDIR_MACRO)\" -LOCAL_LDLIBS := -lz +LOCAL_LDLIBS := -lz -llog LOCAL_STATIC_LIBRARIES := expat LOCAL_SRC_FILES := \ diff --git a/jni/NativeFormats/util/AndroidUtil.cpp b/jni/NativeFormats/util/AndroidUtil.cpp index 38ce92b11..16d339970 100644 --- a/jni/NativeFormats/util/AndroidUtil.cpp +++ b/jni/NativeFormats/util/AndroidUtil.cpp @@ -21,7 +21,6 @@ JavaVM *AndroidUtil::ourJavaVM = 0; -const char * const AndroidUtil::Class_java_lang_System = "java/lang/System"; const char * const AndroidUtil::Class_java_lang_String = "java/lang/String"; const char * const AndroidUtil::Class_java_util_Collection = "java/util/Collection"; const char * const AndroidUtil::Class_java_util_Locale = "java/util/Locale"; @@ -36,8 +35,6 @@ const char * const AndroidUtil::Class_Book = "org/geometerplus/fbreader/library/ const char * const AndroidUtil::Class_Tag = "org/geometerplus/fbreader/library/Tag"; const char * const AndroidUtil::Class_NativeBookModel = "org/geometerplus/fbreader/bookmodel/NativeBookModel"; -jobject AndroidUtil::OBJECT_java_lang_System_err; - jmethodID AndroidUtil::MID_java_lang_String_toLowerCase; jmethodID AndroidUtil::MID_java_lang_String_toUpperCase; @@ -105,12 +102,6 @@ bool AndroidUtil::init(JavaVM* jvm) { JNIEnv *env = getEnv(); jclass cls; - CHECK_NULL( cls = env->FindClass(Class_java_lang_System) ); - jfieldID field; - CHECK_NULL( field = env->GetStaticFieldID(cls, "err", "Ljava/io/PrintStream;") ); - CHECK_NULL( OBJECT_java_lang_System_err = env->GetStaticObjectField(cls, field) ); - env->DeleteLocalRef(cls); - CHECK_NULL( cls = env->FindClass(Class_java_lang_String) ); CHECK_NULL( MID_java_lang_String_toLowerCase = env->GetMethodID(cls, "toLowerCase", "()Ljava/lang/String;") ); CHECK_NULL( MID_java_lang_String_toUpperCase = env->GetMethodID(cls, "toUpperCase", "()Ljava/lang/String;") ); diff --git a/jni/NativeFormats/util/AndroidUtil.h b/jni/NativeFormats/util/AndroidUtil.h index 7864aefba..75f871c9d 100644 --- a/jni/NativeFormats/util/AndroidUtil.h +++ b/jni/NativeFormats/util/AndroidUtil.h @@ -31,7 +31,6 @@ private: static JavaVM *ourJavaVM; public: - static const char * const Class_java_lang_System; static const char * const Class_java_lang_String; static const char * const Class_java_util_Collection; static const char * const Class_java_util_Locale; @@ -46,8 +45,6 @@ public: static const char * const Class_Tag; static const char * const Class_NativeBookModel; - static jobject OBJECT_java_lang_System_err; - static jmethodID MID_java_lang_String_toLowerCase; static jmethodID MID_java_lang_String_toUpperCase; diff --git a/jni/NativeFormats/zlibrary/core/src/logger/ZLLogger.cpp b/jni/NativeFormats/zlibrary/core/src/logger/ZLLogger.cpp index 44ee030b6..6c1261651 100644 --- a/jni/NativeFormats/zlibrary/core/src/logger/ZLLogger.cpp +++ b/jni/NativeFormats/zlibrary/core/src/logger/ZLLogger.cpp @@ -17,7 +17,7 @@ * 02110-1301, USA. */ -#include +#include #include "ZLLogger.h" @@ -25,17 +25,6 @@ const std::string ZLLogger::DEFAULT_CLASS; ZLLogger *ZLLogger::ourInstance = 0; -static void printInternal(const std::string &message) { - JNIEnv *env = AndroidUtil::getEnv(); - jstring javaMessage = AndroidUtil::createJavaString(env, message); - env->CallVoidMethod( - AndroidUtil::OBJECT_java_lang_System_err, - AndroidUtil::MID_java_io_PrintStream_println, - javaMessage - ); - env->DeleteLocalRef(javaMessage); -} - ZLLogger &ZLLogger::Instance() { if (ourInstance == 0) { ourInstance = new ZLLogger(); @@ -52,13 +41,10 @@ void ZLLogger::registerClass(const std::string &className) { void ZLLogger::print(const std::string &className, const std::string &message) const { if (className == DEFAULT_CLASS) { - printInternal(message); + __android_log_print(ANDROID_LOG_WARN, "ZLLogger", message.c_str()); } else { - std::set::const_iterator it = - myRegisteredClasses.find(className); - - if (it != myRegisteredClasses.end()) { - printInternal(className + ": " + message); + if (myRegisteredClasses.find(className) != myRegisteredClasses.end()) { + __android_log_print(ANDROID_LOG_WARN, className.c_str(), message.c_str()); } } }