我在FMOD示例文件夹中找到了一个名为nativeactivity的示例,但不幸的是它使用了一些java代码:
package org.fmod.nativeactivity;
public class Example extends android.app.NativeActivity
{
static
{
System.loadLibrary("fmodex");
System.loadLibrary("main");
}
}
Run Code Online (Sandbox Code Playgroud)
Android.mk看起来像这样:
LOCAL_PATH := $(call my-dir)
#
# FMOD Ex Shared Library
#
include $(CLEAR_VARS)
LOCAL_MODULE := fmodex
LOCAL_SRC_FILES := libfmodex.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/inc
include $(PREBUILT_SHARED_LIBRARY)
#
# Example Library
#
include $(CLEAR_VARS)
LOCAL_MODULE := main
LOCAL_SRC_FILES := main.c
LOCAL_LDLIBS := -llog -landroid
LOCAL_SHARED_LIBRARIES := fmodex
LOCAL_STATIC_LIBRARIES := android_native_app_glue
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)
Run Code Online (Sandbox Code Playgroud)
没有java部分可以吗?如果是这样,我需要改变什么?
我不知道你为什么要摆脱这几行Java.据我所知,这对您的其他应用程序没有任何影响.
你需要Java的原因是Android系统加载器无法找到libfmodex.so解决你的引用的必要条件libghost.so.因此,加载libghost.so失败.Java允许您在加载库之前预加载依赖项.
不幸的是,NativeActivity本身只能加载一个库.2012年4月发布了一项请求,以便在将来的某个时间改善这种情况.
目前,您可以将所有使用fmod的代码切换为动态链接,或者构建第三个共享库,该库将加载fmod然后加载ghost库.在这种情况下,加载器将能够解析ghost中的引用,因为已经加载了fmod.
| 归档时间: |
|
| 查看次数: |
2529 次 |
| 最近记录: |