gpt4 book ai didi

macos - 启用 Developer Tools Access 会导致 Unity 和 Activity Monitor 崩溃

转载 作者:行者123 更新时间:2023-12-05 05:02:33 33 4
gpt4 key购买 nike

从昨天开始,我就遇到了开发者工具问题。我用

  • Unity(几个不同的版本,例如 2018.4.23),
  • Jetbrains Rider(今天更新到2020.1.3,昨天更新到2020.1.2)
  • macOS Catalina 10.15.5

我正在重构一些东西,Developer Tools 要求我提供访问权限:Developer Tools Access 需要控制另一个进程才能继续进行调试。输入您的密码以允许此...

从那时起,发生了两件事。

  1. 如果开发人员工具访问已启用(也尝试通过 sudo/usr/sbin/DevToolsSecurity --enable 命令执行此操作)几乎每次我“我更改了代码中的某些内容,Unity 停止工作(加载轮存在)并且我无法关闭其应用程序。我尝试使用事件监视器,它没有显示任何事件。我只能看到加载轮。

    我什至尝试通过 kill unitypid 杀死 Unity 进程,它“杀死”了进程,因为它不在进程列表中,但我仍然可以在我的桌面上看到它,就像关闭一样和以前一样。

    检查 Unity 日志,我可以看到它停止于:

    Begin MonoManager ReloadAssembly

    custom-attrs.c:1250: (null)
    assembly:/Applications/Unity/Hub/Editor/2018.4.17f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.CoreModule.dll type:UnityException member:(null) signature:<none>

    Stacktrace:
    Native stacktrace:
    0 libmonobdwgc-2.0.dylib 0x00000001460b4976 mono_handle_native_crash + 242
  2. 如果 Developer Tools Access 被禁用,应用程序会多次要求我启用它。按取消几次后,Unity 崩溃并关闭,让我能够向 Apple 发送日志错误,但有以下异常(exception):

    Exception Type:        EXC_CRASH (SIGABRT)

    Exception Codes: 0x0000000000000000, 0x0000000000000000
    Exception Note: EXC_CORPSE_NOTIFY

    Application Specific Information:
    abort() called

不知道该怎么办。我尝试更新 Rider、Catalina,安装新的 Unity 版本。

更新:我格式化了磁盘并重新安装了Catalina,还是不行。

非常感谢您的帮助!

最佳答案

经过进一步调查,我发现了以下重现:

  • 创建一个派生自 PropertyAttribute 的自定义属性那叫AssetDatabase.FindAssets("somethingsomething")在它的构造函数中。
  • 创建一个类(在我的例子中,它派生自 MonoBehaviour 类,以便能够调用构造函数,因为游戏对象放置在场景中)包含一个具有上述自定义属性的字段。<
  • 添加FormerlySerializedAs属性到此字段(例如在重构期间)。
  • 创建一个附加了您的类的游戏对象。

这将导致一个弹出窗口,其中包含我在问题中提到的消息:

Developer Tools Access 需要控制另一个进程才能继续进行调试。输入您的密码以允许此...

例子:

    using System.Diagnostics;
using UnityEditor;
using UnityEngine;

public class CustomObjectPathAttribute : PropertyAttribute
{
/// <summary>
/// Default constructor.
/// </summary>
public CustomObjectPathAttribute()
{
var guids = AssetDatabase.FindAssets("Resources");
}
}

using UnityEngine.Serialization;

[System.Serializable]
public class TestClass
{
/// <summary>
/// Path to the file.
/// </summary>
[FormerlySerializedAs("pathToFile")]
[CustomObjectPath]
public string pathToFile2 = string.Empty;
}

using System.Collections.Generic;
using UnityEngine;

public class MyBehaviour : MonoBehaviour
{
private List<TestClass> testClasses;

void Start()
{
testClasses = new List<TestClass>();
}
}

附上 MyBehaviour放置在场景中的游戏对象的脚本。项目重新编译后会出现此问题。

使用 AssetDatabase.FindAssets("Resources")如果没有 FormerlySerializedAs,在自定义属性的构造函数中工作正常属性附加到 TestClass 中的字段.

我已将错误报告给 Unity QA 团队,他们成功重现了该问题。这是 Unity 问题跟踪器的链接:https://issuetracker.unity3d.com/issues/crash-when-using-assetdatabase-dot-findassets-in-a-custom-propertyattribute-and-when-formerlyserializedas-attribute-is-also-used

除了

,我现在无能为力了
  • 在我的字段具有自定义属性时不重构我的字段附上,
  • 不使用AssetDatabase.FindAssets在我的属性(property)中构造函数。

关于macos - 启用 Developer Tools Access 会导致 Unity 和 Activity Monitor 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62152562/

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