2016-07-10 10 views
1

libのソースコードがあります。アンドロイド用の静的ライブラリを作成したいと思います。 どうすればいいですか?実験的なgradleでこれを行う方法はありますか? また、別のアーチ(arm7、x86など)用にビルドしたいandroidの静的c libを作成する

+0

最新のAndroidスタジオ(2.2プレビュー5)は、Android NDK(ネイティブ開発キット)をサポートしており、http://tools.android.com/から入手できます。 –

+0

お返事ありがとうございます。でも、あなたはlibをどのように構築すればいいですか? – Vardan95

+0

android appの静的ライブラリを直接使用することはできません。これらのライブラリをラップし、これらの共有ライブラリをロードする共有ライブラリ(またはライブラリ)が必要になります。 –

答えて

0

Android用のネイティブバイナリを作成する最も簡単な方法は、ndk-buildツールを使用することです。 Hereは、プロジェクトのビルドのセットアップ方法に関する完全なドキュメントです。そして、あなたは、次のコマンドでビルドを起動することができ

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 
LOCAL_MODULE := <lib_name> # put 'foo' to built libfoo.a 
LOCAL_LDLIBS := -llog -lm # whatever libs you need 
LOCAL_SRC_FILES := <source_files> 
include $(BUILD_STATIC_LIBRARY) 

Application.mk

# an example setup 
APP_ABI := armeabi-v7a x86 
APP_PLATFORM := android-16 
APP_STL := stlport_static 
NDK_TOOLCHAIN_VERSION := 4.8 

そしてAndroid.mk次の2つの余分なファイルを作成する必要が簡潔的には

$ ndk-build NDK_PROJECT_PATH=path/to/intermediate/results/dir NDK_LIBS_OUT=path/to/output/dir APP_BUILD_SCRIPT=path/to/Android.mk NDK_APPLICATION_MK=path/to/Application.mk 

P.S. Android StudioにNDKサポートが改善されているにもかかわらず、手書きのmakefileとともにndk-buildを使用すると、プロジェクトのIMHOに柔軟性がもたらされます。とにかく、gradleのExecタスクを使ってndk-buildベースのビルドを簡単に埋め込むことができます。

+0

回答ありがとうございますが、この方法でヘッダファイルを取得しますか? 私はアンドロイド用のdlibをビルドしようとしています.1500以上のファイルがあり、C++コードで使用するにはヘッダファイルが必要です。 – Vardan95

関連する問題