2013-07-21 58 views
4

我正在使用Unity創建Android應用程序。無法通過Unity在Android上啓動活動

我有兩個插件。每個工作都很好,但是當我想要使用它們兩個時,我無法在它們之間切換活動。

我已經花了近十天閱讀所有類似的問題,並嘗試了從反編譯/編輯/重新編譯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> 

     ... 

這裏是統一代碼(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 

這兩項活動是主要的。其中之一是LAUNCHER。

我可以在兩者上成功調用方法。

但是,我無法將活動切換到非啓動程序,但獲取指定的錯誤(無法找到'getClass'的id)。

我感覺如此接近,但迄今爲止。任何幫助表示讚賞。在這裏瘋狂!

謝謝。

回答

3

你真正的問題是這樣的:java.lang.NoClassDefFoundError:COM/unity3d /播放/ UnityPlayer $ 12個

無論出於何種原因,Java是沒有找到在類路徑類。其他地方的一些研究表明,這可能與您正在編譯的jar和您正在開發的版本中的不匹配有關。這也可能是因爲你沒有在正確的地方使用jar,或者你使用的版本沒有提供該類。

我希望這至少可以幫助您指出正確的方向。

相關問題