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 ?
It looks like you are building the toolchain yourself? I would suggest getting Android NDK and use the ndk-build script as in the examples.