内容へ移動
ユーザ用ツール
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
現在位置:
Home
»
wiki
»
Unity
»
Tips
»
087 ndk-buildで生成したライブラリを利用する
トレース:
wiki:unity:tips:087
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 087 ndk-buildで生成したライブラリを利用する ====== ===== ライブラリの作成 ===== * Visual Studio 2010を起動します。 * ファイル -> 新規作成 -> プロジェクト と選択します。 * Win32 コンソールアプリケーション を選択し、プロジェクト名を「DLLImport_VS」とします。 * アプリケーションの種類をDLLにチェックを入れて、追加のオプションは「空のプロジェクト」に変えて完了します。 * ソースファイルを追加します。(plugin.cpp/h) <code c> // plugin.h extern "C" { int Hoge(); } </code> <code c> // plugin.cpp #include "plugin.h" int Hoge() { return 999; } </code> ここで一度VisualStudioでビルドしてエラーが出ないか確認します。エラーが出なければAndroid用にndk-buildします。ndk-build用のAndroid.mk ファイルを用意します。 <code> include $(CLEAR_VARS) # override strip command to strip all symbols from output library; no need to ship with those.. cmd-strip = $(TOOLCHAIN_PREFIX)strip $1 LOCAL_ARM_MODE := arm LOCAL_PATH := $(NDK_PROJECT_PATH)/jni LOCAL_MODULE := libjni LOCAL_CFLAGS := -Werror LOCAL_SRC_FILES := jni.cpp LOCAL_SRC_FILES += ../plugin.cpp LOCAL_LDLIBS := -llog include $(BUILD_SHARED_LIBRARY) </code> plugin.cpp がlibjniに含まれる様にします。 ndk-buildでエラーが出なければ.soファイルが生成されます。 ===== Unity側にプラグインを呼び出すクラスを用意する ===== * Unity を起動し、新規プロジェクトを作成します。名前はDLLImport とします。 * Project のAssetsにPlugins -> Android フォルダを作成します。 * Androidフォルダに、soファイルが含まれているlibsフォルダ毎ドラッグ&ドロップします。 {{:wiki:unity:tips:unity_native_plugin_cpp_001.png?300|}} * プラグインを利用するためのスクリプトをPluginsフォルダに追加します。 <code csharp> using UnityEngine; using System.Collections; using System.Runtime.InteropServices; using System; public class JNI { [DllImport ("jni")] public static extern int Hoge(); } </code> これで呼び出せる様になりました。任意の場所からJNI.Hoge() とすれば999 と値が返ってきます。 {{:wiki:unity:tips:unity_native_plugin_cpp_002.png?300|}} 実行時にEntryPointNotFoundException エラーがが出てしまう場合は関数の実態を見つけられずにいます。例えば以下の場合は関数が見つけられずエラーが出ます。 <code c> extern "C" { static int Hoge(); } </code> <code c> #include "plugin.h" static int Hoge() { return 999; } </code> static 宣言が余計に付いてます。
Permalink
wiki/unity/tips/087.txt
· 最終更新: 2015/01/06 14:17 by
step
ページ用ツール
ログイン
文書の表示
文書の先頭へ
印刷
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
oeffentlich