我尝试将预建的APK添加到我的Android版本中.APK包含几个共享库(*.so文件).它编译没有问题,但我仍然从应用程序收到一个错误,表明无法找到库.
为什么会这样?
这是android.mk代码:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := apkwithso
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_REQUIRED_MODULES := libx liby libz
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
Run Code Online (Sandbox Code Playgroud)
libx,y,z是我的libx.so,liby.so和libz.so
我还试图将.so手动从APK复制到lib目录,但它没有用.
我正在使用Android 4.1.2编译Galaxy Nexus Maguro.
从本教程.
看,我一个预构建的静态库命名为stackoverflow.a 和它有stackoverflow.h
现在我想使用该静态库的功能
ndk_demo.c //那个教程有这个文件
ndk_demo.c我已经添加了内部
#include 'stackoverflow.h'
Run Code Online (Sandbox Code Playgroud)
编辑
inside `android-ndk-r7c`
|
apps
|
ndk_demo
|
-----------------
| |
project Application.mk
|
--------------------
| |
all other |
folder jni
|
-------------------------------------------------------------------
| | | | |
ndk_demo.c stackoverflow.h lib com_marakana Android.mk
| _NativeLib.h
|
--------------------
| |
Android.mk libstackoverflow.a
Run Code Online (Sandbox Code Playgroud)
现在Application.mk
APP_PROJECT_PATH := $(call my-dir)/project
APP_MODULES := ndk_demo stackover
Run Code Online (Sandbox Code Playgroud)
现在jni/Android.mk
include $(call all-subdir-makefiles)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ndk_demo …Run Code Online (Sandbox Code Playgroud)