首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让Android NDK与libspotify协同工作

让Android NDK与libspotify协同工作
EN

Stack Overflow用户
提问于 2012-11-07 05:44:45
回答 1查看 517关注 0票数 2

我正在尝试将libspotify用于android应用程序,但在构建我的c包装器时遇到了一些问题。我创建了一个非常小的包装器,它只询问libspotify它的版本是什么。

我的文件夹结构如下所示:

代码语言:javascript
复制
jni
 |-libs
 |  |-Android.mk
 |  |-libspotify.so    (symlink)
 |  |-libspotify.so.12 (symlink)
 |  |-libspotify.so.12.1.51
 |
 |-include
 |  |-libspotify
 |     |-api.h
 |
 |-Android.mk
 |-spotifywrap.c

/jni/Android.mk

代码语言:javascript
复制
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_SHARED_LIBRARIES := libspotify
LOCAL_MODULE := spotifywrap
LOCAL_SRC_FILES := spotifywrap.c
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
include $(BUILD_SHARED_LIBRARY)

/jni/spotifywrap.c

代码语言:javascript
复制
include <jni.h>
include <libspotify/api.h>

jstring Java_com_example_ndktest_MainActivity_getBuild(JNIEnv * env, jobject this)
{
    jstring result = (*env)->NewStringUTF( env, sp_build_id() );
    return result;
}

/jni/libs/Android.mk

代码语言:javascript
复制
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := libspotify
LOCAL_SRC_FILES := libspotify.so
include $(PREBUILT_SHARED_LIBRARY)

当我运行ndk-build时,我得到这样的结果:

代码语言:javascript
复制
spotifywrap.c:6: undefined reference to `sp_build_id'

sp_build_id是api.h中接口的一部分。

你知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-07 20:59:25

我有一种感觉,您在jni子目录中的目录结构导致了您的问题。尝试编辑您的Android.mk构建文件以添加以下内容:

代码语言:javascript
复制
LOCAL_CPPFLAGS = -std=c++0x -D__STDC_INT64__
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include

此外,我有一种感觉,您需要将libspotify.so复制到您的顶级libs/armeabi目录才能成功链接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13259920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档