当前位置: 首页 > 知识库问答 >
问题:

集成到不同Android应用程序中的Unity Android正在应用程序上崩溃。退出

潘银龙
2023-03-14

在我们将该项目导出到一个Android项目之后,我们将其与一个现有项目集成,并从中启动我们的游戏。这是正确的工作,但应用程序。Quit()使整个应用程序退出,而不仅仅是Unity活动。因此,我们通过将以下内容添加到清单中,使其在另一个流程上启动:

android:process=":UnityKillsMe"

这解决了这个问题,但是,在使用ProGuard混淆代码后,事情就停止了。Unity仍然正确启动,但是当退出时,应用程序显示一个崩溃错误,Unity停止了,即使应用程序本身仍在工作。重新启动统一甚至可以正确工作,但是在应用程序上。Quit(),崩溃错误仍然显示。以下是发生时的错误日志:

12-02 15:01:35.112: E/AndroidRuntime(4342): FATAL EXCEPTION: UnityMain
12-02 15:01:35.112: E/AndroidRuntime(4342): Process: mobi.foo.touch:UnityKillsMe, PID: 4342
12-02 15:01:35.112: E/AndroidRuntime(4342): java.lang.Error: FATAL EXCEPTION [UnityMain]
12-02 15:01:35.112: E/AndroidRuntime(4342): Unity version     : 5.2.3f1
12-02 15:01:35.112: E/AndroidRuntime(4342):  at com.unity3d.player.UnityPlayer.nativeDone(Native Method)
12-02 15:01:35.112: E/AndroidRuntime(4342):  at com.unity3d.player.UnityPlayer.f(Unknown Source)
12-02 15:01:35.112: E/AndroidRuntime(4342):  at com.unity3d.player.UnityPlayer.g(Unknown Source)
12-02 15:01:35.112: E/AndroidRuntime(4342):  at com.unity3d.player.UnityPlayer$15.run(Unknown Source)
12-02 15:01:35.112: E/AndroidRuntime(4342):  at com.unity3d.player.UnityPlayer.executeGLThreadJobs(Unknown Source)
12-02 15:01:35.112: E/AndroidRuntime(4342):  at com.unity3d.player.UnityPlayer$b.run(Unknown Source)
12-02 15:01:35.122: E/ActivityManager(890): App crashed! Process: mobi.foo.touch:UnityKillsMe

如何解决这个问题?是什么导致了这个问题?

共有1个答案

鲁靖
2023-03-14

我刚刚遇到了确切的问题,并设法解决了它。

Proguard Unity3D在单独的进程中启动,如果应用程序失败,将导致崩溃。在Unity3D中调用了Quit()。

解决方案:通过本机销毁Unity3D应用程序退出该应用程序。

Unity3D:

// Add this code in, replace Application.Quit() to AndroidQuit()
void AndroidQuit(){
    AndroidJavaClass myClass = new AndroidJavaClass("com.yourpackagenamehere.UnityPlayerActivity");
    AndroidJavaObject activity = myClass.GetStatic<AndroidJavaObject>("UnityActivity");
    activity.Call("QuitUnity");
}

Android项目:

// In UnityPlayerActivity.java

// Declare static object for Unity to make calls from
public static Context UnityActivity;

// Instantiate it in the onCreate Method right after super.onCreate
UnityActivity = this;

// Add the following method for Unity3D function to trigger the Quit    
public void QuitUnity() {
    android.os.Process.killProcess(android.os.Process.myPid());
    //finish();
    //this.onDestroy();
}

编辑:在我更新了我的项目之后,这个。OnDestroy()和finish()将显示一个崩溃对话框。Android操作系统。过程killProcess()非常有效。

然而,直接杀死这个过程效果很好。

另一方面,崩溃的原因之一可能是由于我使用了渲染纹理和logcat中的以下统一错误表面。

Destroying active render texture. Switching to main context.
 类似资料:
  • 在以前的代码上,谁医生帮了我 现在,android应用程序在我的手机上运行时崩溃了,这是错误日志 第一个问题是在我用相机扫描二维码后,它不能显示在二维码的结果进入 第二个问题是,我从存储器中选择了一个QRcode图像,然后点击确认,它崩溃了 下面是我认为的问题 类型不匹配:推断的类型是Uri?但乌里是意料之中的 冗余SAM构造函数 'onRequestPermissionsResult(Int,数

  • 我正在尝试将图像添加到我新创建的应用程序中。但是,当我运行我的应用程序时,它会崩溃。我没有在我的应用程序中编写任何代码,因此我提供了XML代码和错误日志。我在以前的应用程序中使用了ImageViews。没有错误。我已经优化了我的图像,但它仍然给我错误。 图像详细信息 错误日志: 09-08 16:03:02.266 15137-15137/ooper.loopE/AndroidRuntime: F

  • 以下相同的代码在除android 11以外的所有android版本中完美运行。在Android11或API 30中,我们的应用程序崩溃了,甚至根本打不开。我们正在使用请求网络API在我们的应用程序中执行GET、POST操作。 这是一份日志: 主要活动。爪哇: 请求网络。爪哇: 请求网络控制器。爪哇: 请帮助我们解决这个错误。提前感谢:)

  • 我创建了一个应用程序,在Android marshmallow中崩溃,而在under版本中我的应用程序正常工作。 这怎么可能?这是我的清单代码: 这是分级代码: 我读到你必须在代码中修改一些东西,使其与AndroidMarshmallow兼容。 我该如何解决问题呢?

  • 问题内容: 当我尝试访问Flask应用程序时,该应用程序崩溃了。 这类似于this或this。但是,我的设置似乎正确。 flask.cli.NoAppException:提供的文件/路径(服务器)似乎不存在。请确认路径正确。如果应用不在PYTHONPATH上,请确保扩展名为.py 我的环境变量设置正确。 我的服务器文件是y目录中没有任何文件。 我不记得对代码进行任何特殊更改。该错误可能来自哪里?

  • 对于某些活动的意图是有效的,对于某些特定的活动意图是崩溃的,我已经改变并尝试了不同的方法,但是对于某些活动意图是无效的,应用程序正在构建,但是在手机上运行之后,它在调试期间没有显示出任何错误?我尝试了不同的方法,但它仍然崩溃,谁能帮助我解决它? MainActivity java 清单文件