LoginSignup
10
9

More than 5 years have passed since last update.

java.lang.UnsatisfiedLinkErrorで怒られた時にやったこと

Posted at
E/AndroidRuntime(32748): java.lang.UnsatisfiedLinkError: Native method not found: org.cocos2dx.lib.Cocos2dxHelper.nativeSetApkPath:(Ljava/lang/String;)V

Eclipseが怒るにはjniが見つかりませんのエラーのようです。
しかし、Cocos2dxHelper内に行くと最初に触っているNativeのJNIがこいつっぽいのでこのメソッドだからでは無い様子。

ひょっとすると本来必要なものが呼ばれていないのではとパスをごちゃごちゃいじるも解決せず。

解決方法はAndroidManifest.xml内を次のようにすることでした。

         <meta-data android:name="android.app.lib_name"
                       android:value="cocos2dcpp" />
        <activity android:name="org.cocos2dx.cpp.AppActivity"
                  android:label="@string/app_name"
                  android:screenOrientation="portrait"
                  android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                  android:configChanges="orientation">

AppActivityが継承するCocos2dxActivityないから呼んでいるこのnativeSetApkPathがないということは、本来あるべきcppから生成されるバイナリが見つからないということなので、このAppActivityより前に"かつapplicationタグ内に"この宣言されていないと見えていないということでした。

たくさんのライブラリーにリンクさせてManifestをいじるとよくmeta-dataの場所を動かしたりするので、こういうことには注意しなければなりません。

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9