我现在在做一个游戏的移植,以下是我程序里jni的简写版:
|-----one.h
|-----one.cpp
|
jni--|-----two.h
|-----two.cpp
| |---three.h
|-----folder---|
|---three.cppone: 就是native方法,它要调用two的类的方法(include"two.h");two: 一个类,调用three里的方法(include"./folder/threee");three: 就是一系列的普通方法。我现在不大会写这个Android.mk文件,写过了几个试试都不成功,求大虾们的帮助。下面这个为什么不对?LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)
LOCAL_MODULE := three
LOCAL_SRC_FILES := folder/three.cpp
include $(BUILD_STATIC_LIBRARY)include $(CLEAR_VARS)
LOCAL_MODULE := two
LOCAL_SRC_FILES := two.cpp
LOCAL_STATIC_LIBRARIES := three
include $(BUILD_SHARED_LIBRARY)include $(CLEAR_VARS)
LOCAL_MODULE := one
LOCAL_SRC_FILES := one.cpp
LOCAL_SHARED_LIBRARIES := two
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)谢谢了!!!PS:帖子写得不太好。假如还有更多的文件相互调用,写法会不会更麻烦?
|-----one.h
|-----one.cpp
|
jni--|-----two.h
|-----two.cpp
| |---three.h
|-----folder---|
|---three.cppone: 就是native方法,它要调用two的类的方法(include"two.h");two: 一个类,调用three里的方法(include"./folder/threee");three: 就是一系列的普通方法。我现在不大会写这个Android.mk文件,写过了几个试试都不成功,求大虾们的帮助。下面这个为什么不对?LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)
LOCAL_MODULE := three
LOCAL_SRC_FILES := folder/three.cpp
include $(BUILD_STATIC_LIBRARY)include $(CLEAR_VARS)
LOCAL_MODULE := two
LOCAL_SRC_FILES := two.cpp
LOCAL_STATIC_LIBRARIES := three
include $(BUILD_SHARED_LIBRARY)include $(CLEAR_VARS)
LOCAL_MODULE := one
LOCAL_SRC_FILES := one.cpp
LOCAL_SHARED_LIBRARIES := two
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)谢谢了!!!PS:帖子写得不太好。假如还有更多的文件相互调用,写法会不会更麻烦?
解决方案 »
- Activity中重写的onCreate方法中的形参(Bundle savedInstanceState)代表什么?
- 手机客服端如何与服务器实现数据同步
- 如何获得程序的安装路径
- 有没有android在条形码和二维码下的案例
- 菜鸟问题,在AndroidManifest.xml中添加Activity不成功。
- 关于pdu的问题!!!
- 都快疯掉了,android源码总是下载不下来。谁能介绍个靠谱点的android源码下载的方法,多谢了。
- 求助,Android开发如何调用摄像头。
- 怎么直接调用系统设置好的闹钟(自己解决了,来几个收分的)
- 安卓编程的问题 为什么我在写布局文件的时候有些android: 的属性没有呢
- 将assets目录下的一些图片拷贝到sdcard中
- android适合什么时候学?请高手帮忙
jin 文件夹里有四个文件(one.h, one.cpp, two.h, two.cpp)与一个文件夹(folder);folder里有两个文件(three.h, three.cpp)。
include $(CLEAR_VARS)
LOCAL_MODULE := libxxx
LOCAL_SRC_FILES:= one.cpp \
two.cpp \
folder/three.cpp
LOCAL_C_INCLUDES +=$(LOCAL_PATH)/folder
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
WARN/dalvikvm(220): Exception Ljava/lang/UnsatisfiedLinkError; thrown during Lcn/gzjp/lmq/Test2;.<clinit>
WARN/dalvikvm(220): Class init failed in newInstance call (Lcn/gzjp/lmq/Test2;)
DEBUG/AndroidRuntime(220): Shutting down VM
WARN/dalvikvm(220): threadid=3: thread exiting with uncaught exception (group=0x4001aa28)
ERROR/AndroidRuntime(220): Uncaught handler: thread main exiting due to uncaught exception
ERROR/AndroidRuntime(220): java.lang.ExceptionInInitializerError
ERROR/AndroidRuntime(220): at java.lang.Class.newInstanceImpl(Native Method)
ERROR/AndroidRuntime(220): at java.lang.Class.newInstance(Class.java:1472)
ERROR/AndroidRuntime(220): at android.app.Instrumentation.newActivity(Instrumentation.java:1097)
ERROR/AndroidRuntime(220): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2316)
ERROR/AndroidRuntime(220): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
ERROR/AndroidRuntime(220): at android.app.ActivityThread.access$2100(ActivityThread.java:116)
ERROR/AndroidRuntime(220): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
ERROR/AndroidRuntime(220): at android.os.Handler.dispatchMessage(Handler.java:99)
ERROR/AndroidRuntime(220): at android.os.Looper.loop(Looper.java:123)
ERROR/AndroidRuntime(220): at android.app.ActivityThread.main(ActivityThread.java:4203)
ERROR/AndroidRuntime(220): at java.lang.reflect.Method.invokeNative(Native Method)
ERROR/AndroidRuntime(220): at java.lang.reflect.Method.invoke(Method.java:521)
ERROR/AndroidRuntime(220): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
ERROR/AndroidRuntime(220): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
ERROR/AndroidRuntime(220): at dalvik.system.NativeStart.main(Native Method)
ERROR/AndroidRuntime(220): Caused by: java.lang.UnsatisfiedLinkError: Library one not found
ERROR/AndroidRuntime(220): at java.lang.Runtime.loadLibrary(Runtime.java:489)
ERROR/AndroidRuntime(220): at java.lang.System.loadLibrary(System.java:557)
ERROR/AndroidRuntime(220): at cn.gzjp.lmq.Test2.<clinit>(Test2.java:20)
ERROR/AndroidRuntime(220): ... 15 more
Compile++ thumb : two <= two.cpp
Compile++ thumb : three <= three.cpp
StaticLibrary : libthree.a
SharedLibrary : libtwo.so
SharedLibrary : libone.so
Install : libone.so => libs/armeabi/libone.so
Install : libtwo.so => libs/armeabi/libtwo.so