【问题标题】:Extension installed from Chrome Webstore throws error "Package is invalid. Details: 'Cannot load extension with file or directory name _metadata...'从 Chrome Webstore 安装的扩展程序抛出错误“包无效。详细信息:'无法加载带有文件或目录名称 _metadata 的扩展程序......'
【发布时间】:2014-07-18 02:02:37
【问题描述】:

将 CRX 添加到 Chrome 网上应用店后,Google 会将目录 _metadata 添加到 crx。旧版本的 Chrome 不知道这个目录(在 Chrome 27 上测试)并抛出这个错误:

Package is invalid. Details: 'Cannot load extension with file or directory name
_metadata. Filenames starting with "_" are reserved for use by the system.'.

如果您尝试在旧版 Chrome 上安装此扩展程序,您会看到此错误:https://chrome.google.com/webstore/detail/allcast-receiver/hjbljnpdahefgnopeohlaeohgkiidnoe

很好的解释:https://groups.google.com/a/chromium.org/d/msg/chromium-apps/huDqSeaQx3Q/Z5GOMxA7lQIJ

有解决办法吗?这使得无法支持旧版本的 Chrome。

【问题讨论】:

    标签: google-chrome google-chrome-extension google-chrome-app


    【解决方案1】:

    您可以尝试解压缩 CRX(如果需要,将后缀名称更改为“.zip”),然后在 chrome 中:设置 -> 扩展检查“开发者模式”,选择“加载解压的扩展..”并选择解压文件夹。

    附: 我不得不重命名以“_”(下划线)开头的文件夹并删除该行 "default_locale":"en", 从清单 JSON 中,以便它工作

    【讨论】:

    • 值得注意的是,亚当的 P.S.可能很重要:我试图使用他们自己的常见问题解答作为指导在离线机器上安装 Postman,但除非我将 _metadata 文件夹重命名为 metadata,否则它将无法正常工作。
    【解决方案2】:

    您(作为扩展程序开发人员)无法解决此错误,因为该目录是由 Chrome Web Store (CWS) 添加的。您可以通过不使用 CWS 分发扩展程序来解决该错误,但大多数 Chrome 用户无法使用该扩展程序,因为 Google 已积极尝试阻止用户从 CWS 外部获取扩展程序。

    CWS 团队是唯一可以修复该错误的团队。如果用户代理不支持该目录(Chrome 30-),他们应该提供没有_metadata 目录的 crx 文件。正在https://code.google.com/p/chromium/issues/detail?id=377278 上跟踪此错误。到目前为止,响应是:

    我们无法修复旧版 Chrome。 Webstore 端在 b/15176392 上跟踪,但不太可能将支持扩展到 Chrome 30。

    为问题加注星标以获得更新通知并表明您确实希望修复该错误。如果有足够多的用户/开发者抱怨,那么谷歌可能会修复这个错误。

    【讨论】:

    • 并且通过“抱怨”绝不会抱怨错误 cmets。这将导致 cmets 快速锁定,因为它非常烦人(所有加注星标的人都会收到通知)
    • @Xan 是的,显然仍然需要礼貌。通过抱怨,我指的是让我们的声音被听到,例如通过向bug report 或邮件列表(chromium-appschromium-extensions)添加一些重要的实际用例/场景。
    • @RobW 谢谢。根据我的经验,这意味着它永远不会被修复。 Google 可能希望强制人们更新到最新的 Chrome 版本,但要做到这一点,他们至少应该让网上商店通知他们网上商店扩展程序需要更新版本而不是神秘的错误消息。
    • @DonRhummy 实际上,这是一个很好的建议!我建议将其放在错误上,而不是您的“是的,我要”评论。这个bug有两个方面:兼容性和通信。目前,扩展开发人员被指责为不兼容,而实际上它是 CWS 的一个错误。一个明确的信息会让用户知道这不是扩展作者的错,他们的浏览器太旧了。
    • 仅供参考,对于不受支持的旧客户端,我们将禁止从网上商店进行安装,并包含一条消息说明这一点,并建议用户升级到较新版本的 chrome。
    【解决方案3】:

    此答案适用于您的 CRX 文件:

    • 从 Chrome 网上应用店下载
    • 正在尝试加载解包

    _locales 文件夹不应该造成问题。只要清单包含default_locale 键,Chrome 就会按预期加载解压后的扩展。

    _metadata 是有问题的文件夹。它包含所有扩展文件的加密哈希以防止篡改这些文件,并由 CWS 自动添加。这在解压扩展的上下文中没有意义,并且没有其他用途,因此只需删除此文件夹

    【讨论】:

      【解决方案4】:

      有些人发现重置作品。有些人发现清空回收站是可行的。没有一个对我有用。我重新安装了chrome也没有用。

      这对我有用(与 Xan 所说的相同):我下载 .crx 文件,解压缩,删除文件夹

      _元数据

      然后手动安装。这对我有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-17
        • 1970-01-01
        • 2019-09-14
        • 1970-01-01
        • 2013-12-28
        • 1970-01-01
        相关资源
        最近更新 更多