gpt4 book ai didi

android - 无法通过 Unity 在 Android 上启动 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:49 26 4
gpt4 key购买 nike

我正在使用 Unity 创建一个 Android 应用程序。

我有两个插件。每个单独工作都很好,但是当我想同时使用它们时,我无法在它们之间切换 Activity 。

在过去的十天里,我一直在阅读所有类似的问题,并尝试了从反编译/编辑/重新编译 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

这两个 Activity 都是主要的。其中之一是发射器。

我可以在两者上成功调用方法。

我无法将 Activity 切换到非 LAUNCHER Activity ,但是出现指定的错误(无法找到“getClass”的 ID)。

我觉得很近,但又很远。任何帮助表示赞赏。快疯了!

谢谢。

最佳答案

你真正的问题是:java.lang.NoClassDefFoundError: com/unity3d/player/UnityPlayer$12

无论出于何种原因,java 都没有在您的类路径中找到该类。其他地方的一些研究表明,这可能与您正在编译的 jar 和您正在开发的版本不匹配有关。也可能是您没有将 jar 放在正确的位置,或者您使用的版本不提供该类。

我希望这至少能帮助您指明正确的方向。

关于android - 无法通过 Unity 在 Android 上启动 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17775358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com