Unity3D から単純なネイティブ関数 (C++) を呼び出そうとしています。私は次のことをしました:
libMSDKWrapper.so
Assets->Plugins->Android に配置これは私のC#コードです
using UnityEngine; using System.Collections; using System.Runtime.InteropServices; public class facebooktest : MonoBehaviour { [DllImport ("MSDKWrapper")] private static extern long getContextNative(); void Start () { Debug.Log("Hello, World!"); long context = getContextNative(); // <-- Exception thrown here Debug.Log(context); } }
次の例外が発生します。
system.entrypointnotfoundexception at [0x00000] in Filename unknown:0
コマンドを使用してJavaを使用して同じlibMSDKWrapper.soを使用しました
System.loadLibrary("MSDKWrapper");
getContextNative() メソッドにアクセスして使用することができました。
編集 1: apk の内容を解凍したところ、libMSDKWrapper.so ファイルが test.apk/lib/armeabi-v7a に存在することがわかりました
編集 2: これが logcat ログです。03-25 11:40:17.543: D/dalvikvm(26176): ライブラリを読み込もうとしています /data/data/com.disney.citygirl.goo/lib/libMSDKWrapper.so 0x41566348 03-25 11:40:17.568: D/ MSDK(26176): 登録プロバイダー: SN_COMMUNITY 03-25 11:40:17.568: D/MSDK(26176): 登録プロバイダー: SN_FACEBOOK 03-25 11:40:17.568: D/dalvikvm(26176): 共有ライブラリ /data を追加/data/com.disney.citygirl.goo/lib/libMSDKWrapper.so 0x41566348 03-25 11:40:17.568: I/MSDK(26176): JNI_OnLoad と呼ばれる 03-25 11:40:17.573: D/dalvikvm(26176) : ライブラリを読み込もうとしています /data/data/com.disney.citygirl.goo/lib/libMSDKWrapper.so 0x41566348 03-25 11:40:17.573: D/dalvikvm(26176): 共有ライブラリ '/data/data/com. disney.citygirl.goo/lib/libMSDKWrapper.so' は既に同じ CL にロードされています 0x41566348 03-25 11:40:17.598: I/Unity(26176): System.EntryPointNotFoundException: getContextNative 03-25 11:40:17.598:
03-25 11:40:17.598: I/Unity(26176): (ファイル名: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp 行: 43)