Unity を使用して Android アプリケーションを作成しています。
私は2つのプラグインを持っています。それぞれが単独で正常に動作しますが、両方を使用したい場合、それらの間でアクティビティを切り替えることができません。
私は過去10日間、同様の質問をすべて読んで、Javaコードの逆コンパイル/編集/再コンパイルからUnity自体からの実行まですべてを試しましたが、うまくいきませんでした.
これが私が書いた最終的なコードと私が得るエラーです。
私のAndroidManifest.xml
ファイル:
...
<activity
android:name="com.Company.Game.RRAndroidPluginActivity"
android:label="My Game">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.codiwans.iab.IAB"
android:screenOrientation="landscape"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
android:label="My Game IAB" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
...
Unity コード (C#) は次のとおりです。
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject pm = jo.Call<AndroidJavaObject>("getPackageManager");
AndroidJavaObject intent = pm.Call<AndroidJavaObject>("getLaunchIntentForPackage",
"com.codiwans.iab.IAB");
jo.Call("startActivity", intent);
これが私が得るエラーです:
JNI: Unable to find method id for 'getClass'
Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 54)
JNI: Unable to find method id for 'getName'
Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 54)
JNI: Unable to find method id for 'getName'
Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 54)
Caused by: java.lang.NoClassDefFoundError: com/unity3d/player/UnityPlayer$12
at com.unity3d.player.UnityPlayer.setScreenSize(Unknown Source)
at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
at com.unity3d.player.UnityPlayer.onDrawFrame(Unknown Source)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1462)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1216)
Caused by: java.lang.NullPointerException
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1382)
at android.app.Activity.startActivityForResult(Activity.java:3190)
at android.app.Activity.startActivity(Activity.java:3297)
... 4 more
どちらのアクティビティもメインです。それらの1つはLAUNCHERです。
両方でメソッドを正常に呼び出すことができます。
アクティビティを LAUNCHER 以外のものに切り替えることはできませんが、指定されたエラーが発生します (「getClass」の ID が見つかりません)。
とても近くに感じますが、まだ遠いです。どんな助けでも大歓迎です。ここで狂っている !
ありがとう。