I am developing Unity Android plugin to use the java function from c#.
When the apk is loaded to the handset, the error mesage is as follows :
09-30 21:55:44.784: INFO/dalvikvm(7122): Unable to dlopen(/data/data/com.nhn.JavaPluginTest/lib/libduelgojava.so): Cannot load library:
09-30 21:55:44.784: DEBUG/dalvikvm(7122): Trying to load lib /data/data/com.nhn.JavaPluginTest/lib/libduelgojava.so 0x47d1ff80
09-30 21:55:44.784: INFO/dalvikvm(7122): Unable to dlopen(/data/data/com.nhn.JavaPluginTest/lib/libduelgojava.so): Cannot load library:
I check the file libduelgojava.so is in “/data/data/com.nhn.JavaPluginTest” using adb command.
And makefile is as follows:
#############################################
Android Makefile
#############################################
HOME = /home/samchung
JAVA_HOME = $(HOME)/jdk1.6
Tool chain
TOOLCHAIN_ROOT = $(HOME)/arm-2010q1
Target OS
SYS_ROOT = (HOME)/tmp/android/system SYS_DEV = (HOME)/mydroid
CROSS_COMPILE = (TOOLCHAIN_ROOT)/bin/arm-none-linux-gnueabi- LIBDIR =(TOOLCHAIN_ROOT)/lib/gcc/arm-none-linux-gnueabi/4.4.1
LIBRARIES =$(LIBDIR)/libgcc.a
#CC = (CROSS_COMPILE)gcc-4.4.1
CC = (CROSS_COMPILE)gcc
#CC = gcc
BASE=(SYS_DEV)/frameworks/base
LIBC=(SYS_DEV)/bionic/libc
LIBM=(SYS_DEV)/bionic/libm
TC=(SYS_DEV)/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/lib/gcc/arm-eabi/4.2.1/install-tools
KERNEL = $(LIBC)/kernel
INCLUDES = -I$(LIBC)/include -I$(LIBC)/arch-arm/include
-I$(LIBC)/kernel/arch-arm/include
-I$(LIBM)/include -I$(BASE)/include -I$(TC)/include
-I$(JAVA_HOME)/include
-I$(KERNEL)/common -I$(KERNEL)/arch-arm
-I$(SYS_DEV)/frameworks/base/opengl/include
-I$(HOME)/AndroidNDK/android-ndk-r4b/build/platforms/android-8/arch-arm/usr/include
Linker
LINKER = $(CROSS_COMPILE)ld
Libraries
LIB_PATHS = -rpath /system/lib -L.
-rpath (SYS_ROOT)/lib -L(SYS_ROOT)/lib
CFLAGS = -g -Wall -O2 -ffast-math -nostdinc #-DWMODE=0
LFLAGS = -lc -lm
ALFLAGS=–dynamic-linker=/system/bin/linker -nostdlib $(LFLAGS)
NASM = nasm
.SUFFIXES: .asm .cpp
all: lib
.asm.o:
(NASM) -f elf -o @ $<
.c.o:
@echo
(CC) -fpic -c (CFLAGS) (MACROS) (INCLUDES) <
jni_comp:
(CC) -fpic -c (CFLAGS) (MACROS) (INCLUDES) -I(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux jni_duelgo.cpp
lib: jni_comp
(LINKER) (ALFLAGS) (LIB_PATHS) (LIBS) -shared -o ./libduelgojava.so jni_duelgo.o
how can i fix it ?