1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-03 17:59:33 +02:00

synchronization with native branch

This commit is contained in:
Nikolay Pultsin 2012-03-01 03:12:48 +00:00
parent 4eb420ecaa
commit f6452297c7
5 changed files with 38 additions and 2 deletions

View file

@ -35,6 +35,7 @@ LOCAL_LDLIBS := -lz
LOCAL_STATIC_LIBRARIES := expat
LOCAL_SRC_FILES := \
NativeFormats/main.cpp \
NativeFormats/JavaNativeFormatPlugin.cpp \
NativeFormats/JavaPluginCollection.cpp \
NativeFormats/util/AndroidUtil.cpp \

View file

@ -0,0 +1,28 @@
/*
* Copyright (C) 2011-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <jni.h>
#include <AndroidUtil.h>
extern "C"
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved) {
AndroidUtil::init(jvm);
return JNI_VERSION_1_2;
}

View file

@ -66,7 +66,7 @@ JNIEnv *AndroidUtil::getEnv() {
return env;
}
#define CHECK_NULL(value) if ((value) == 0) { return false; }
#define CHECK_NULL(value) if ((value) == 0) { throwRuntimeException(env, #value); }
bool AndroidUtil::init(JavaVM* jvm) {
ourJavaVM = jvm;
@ -167,3 +167,8 @@ std::string AndroidUtil::convertNonUtfString(const std::string &str) {
return result;
}
void AndroidUtil::throwRuntimeException(JNIEnv *env, const std::string &message) {
jclass cls = env->FindClass("java/lang/RuntimeException");
env->ThrowNew(cls, message.c_str());
}

View file

@ -77,6 +77,8 @@ public:
static bool extractJavaString(JNIEnv *env, jstring from, std::string &to);
static jstring createJavaString(JNIEnv* env, const std::string &str);
static std::string convertNonUtfString(const std::string &str);
static void throwRuntimeException(JNIEnv *env, const std::string &message);
};
#endif /* __ANDROIDUTIL_H__ */

View file

@ -8,6 +8,6 @@
# project structure.
java.encoding=utf-8
proguard.config=proguard.cfg
#proguard.config=proguard.cfg
# Project target.
target=android-8