从Chrome Webstore安装的扩展程序会引发错误“程序包无效。详细信息:'无法加载包含文件或目录名称的扩展名_metadata ...'

时间:2014-05-28 17:50:02

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

将CRX添加到Chrome网上应用店后,Google会向crx添加目录_metadata。较早版本的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。

5 个答案:

答案 0 :(得分:12)

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

P.S。 我不得不重命名以" _"开头的文件夹。 (下划线)并删除该行     "default_locale":"en", 从清单JSON开始,以便工作

答案 1 :(得分:11)

您 - 作为扩展程序开发人员 - 无法解决此错误,因为该目录是由Chrome网上应用店(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。

明确问题以获得更新通知,并表示您确实希望修复错误。如果有足够的用户/开发者抱怨,那么Google 可能会修复该错误。

答案 2 :(得分:3)

此答案适用于您:

的CRX文件
  • 从Chrome网上应用店下载
  • 正在尝试加载解压缩的

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

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

答案 3 :(得分:0)

有些人发现重置工作。一些人发现清空回收站的工作原理。没有人为我工作。我重新安装chrome也没用。

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

_metadata

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

答案 4 :(得分:0)

删除_METADATA文件夹,我确认您下载管理员将作为您的扩展之一添加。