summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArne Schwabe <arne@rfc2549.org>2013-08-07 23:29:05 +0200
committerArne Schwabe <arne@rfc2549.org>2013-08-07 23:29:05 +0200
commit89fbc2e73b78fb7aaaf3cfbe95185d5f8f1e3cf1 (patch)
tree8e8ba4def76bede94806ceee87ea67e92bf115b8
parent98e81a04548eda145c2cabf8d3a7bd24b74b3971 (diff)
Fix compiling with Android NDK r9
-rw-r--r--doc/README.txt2
-rw-r--r--jni/Android.mk2
-rw-r--r--jni/Application.mk7
-rw-r--r--jni/dummy.cpp8
-rw-r--r--src/de/blinkt/openvpn/core/NativeUtils.java1
-rw-r--r--src/de/blinkt/openvpn/core/OpenVpnManagementThread.java7
6 files changed, 16 insertions, 11 deletions
diff --git a/doc/README.txt b/doc/README.txt
index 7dac5c05..d3b385ab 100644
--- a/doc/README.txt
+++ b/doc/README.txt
@@ -10,7 +10,7 @@ svn co http://google-breakpad.googlecode.com/svn/trunk/ google-breakpad
- Install sdk
-- Install ndk (Versions 8c+ give strange linker errors, use 8b for now)
+- Install ndk (Version r9 is tested and used by me)
- Make sure that ndk-build is in your build path.
Do ./misc/build-native.(sh|bat) in the root directory of the project.
diff --git a/jni/Android.mk b/jni/Android.mk
index ab989813..58cfa757 100644
--- a/jni/Android.mk
+++ b/jni/Android.mk
@@ -36,7 +36,7 @@ include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_LDLIBS := -lz -lc
LOCAL_SHARED_LIBRARIES := libssl libcrypto openvpn
-LOCAL_SRC_FILES:= minivpn.c
+LOCAL_SRC_FILES:= minivpn.c dummy.cpp
LOCAL_MODULE = minivpn
include $(BUILD_EXECUTABLE)
diff --git a/jni/Application.mk b/jni/Application.mk
index 5670b6e3..b69669ac 100644
--- a/jni/Application.mk
+++ b/jni/Application.mk
@@ -1,7 +1,8 @@
APP_ABI := all
-NDK_TOOLCHAIN_VERSION=4.4.3
-#APP_PLATFORM := android-14
-APP_STL:=stlport_static
+APP_PLATFORM := android-14
+
+APP_STL:=stlport_shared
+#APP_STL:=gnustl_shared
#APP_OPTIM := release
diff --git a/jni/dummy.cpp b/jni/dummy.cpp
new file mode 100644
index 00000000..58466656
--- /dev/null
+++ b/jni/dummy.cpp
@@ -0,0 +1,8 @@
+/*#include <string>
+#include <iostream>
+
+void dummy()
+{
+ std::cout << "I am a dummy function to help compile on Android NDK r9" << std::endl;
+}
+*/
diff --git a/src/de/blinkt/openvpn/core/NativeUtils.java b/src/de/blinkt/openvpn/core/NativeUtils.java
index 42d0b583..a2c4796d 100644
--- a/src/de/blinkt/openvpn/core/NativeUtils.java
+++ b/src/de/blinkt/openvpn/core/NativeUtils.java
@@ -7,6 +7,7 @@ public class NativeUtils {
static native void jniclose(int fdint);
static {
+ System.loadLibrary("stlport_shared");
System.loadLibrary("opvpnutil");
}
}
diff --git a/src/de/blinkt/openvpn/core/OpenVpnManagementThread.java b/src/de/blinkt/openvpn/core/OpenVpnManagementThread.java
index 2cb6dfe3..e2ac1526 100644
--- a/src/de/blinkt/openvpn/core/OpenVpnManagementThread.java
+++ b/src/de/blinkt/openvpn/core/OpenVpnManagementThread.java
@@ -92,11 +92,6 @@ public class OpenVpnManagementThread implements Runnable, OpenVPNManagement {
}
-
- static {
- System.loadLibrary("opvpnutil");
- }
-
public void managmentCommand(String cmd) {
if(mSocket!=null) {
try {
@@ -162,7 +157,7 @@ public class OpenVpnManagementThread implements Runnable, OpenVPNManagement {
private void protectFileDescriptor(FileDescriptor fd) {
Exception exp;
try {
- Method getInt = FileDescriptor.class.getDeclaredMethod("getInt$");
+ Method getInt = FileDescriptor.class.getDeclaredMethod("getInt$");
int fdint = (Integer) getInt.invoke(fd);
// You can even get more evil by parsing toString() and extract the int from that :)