无法创建数据目录 - Google Chrome 无法读取和写入其数据目录 - Cordova

Failed to Create Data Directory - Google Chrome Cannot Read and Write Its Data Directory - Cordova

我一直在开发 Cordova 应用程序,但突然遇到 Chrome 的问题。 我想开始调试,所以我添加了对浏览器平台的支持,我使用 Chrome.

在 Chrome 上 Chrome 应用程序后,我遇到了这个问题:

Failed To Create Data Directory

Google Chrome cannot read and write its data directory:

C:/Chromedevsession"

screenshot here: http://prntscr.com/876kax

我尝试过的事情:

之前已经可以了,不知道为什么突然出现了。我尝试升级到 Windows 10 几次但都失败了,所以注册表可能有问题吗?

这是因为启动 chrome 的脚本使用了通常无法使用您的权限创建的文件夹位置。该文件夹用于历史记录、书签、cookie 等(即用户数据)。这有利于测试 Chrome 中的功能(插件等)并且不会影响您的正常实例。我在这里不认为这是一个太大的问题,更多的是令人讨厌的信息。如果您不喜欢它,您也可以随时在您的系统上手动创建该文件夹。

您可以在此处查看导致问题的原因

switch (process.platform) {
  case 'darwin':
    spawn('open', ['-n', '-a', 'Google\ Chrome', '--args', '--disable-web-security', '--user-data-dir=/tmp/temp_chrome_user_data_dir_for_cordova_browser', project]);
    break;
  case 'win32':
    //TODO: Use regex to fix location of chrome.exe
    //TODO: Get --user-data-dir to work for windows
    spawn('C:/Program Files (x86)/Google/Chrome/Application/chrome.exe', ['--user-data-dir="C:/Chromedevsession"', '--disable-web-security', project]);
    break;
}

因为它不能使用那个文件夹,我相信它只是恢复到 defaults,在 Windows 10 上会是

C:\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data\Default

我通过编辑 运行 文件 (platforms/browser/cordova/run) 并删除第 33 行 C:/Chromedevsession 周围的语音标记解决了这个问题。

该行现在显示为:

spawn('C:/Program Files (x86)/Google/Chrome/Application/chrome.exe', ['--user-data-dir=C:/Chromedevsession', '--disable-web-security', project]);

删除注册表策略路径中的 Space

HKEY_CURRENT_USER\Software\Policies\Google\Chrome\UserDataDir

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\UserDataDir

示例:

${roaming_app_data}\Google\Chrome\User_Data

而不是

${roaming_app_data}\Google\Chrome\User Data

对此有一个更简单的解决方案。只需指定要用于调试 chrome 实例的特殊目录的完整路径。在我的例子中,我将用户数据目录设置为默认用户数据目录旁边的文件夹,名为 "Debug"。以下对我有效,在我的 package.json:

中指定为脚本
"start-remote-debugging-browser": "C:\PROGRA~2\Google\Chrome\Application\chrome.exe -incognito --app=http://localhost:4200/ --remote-debugging-port=9222 --user-data-dir=C:\Users\mmcin\AppData\Local\Google\Chrome\User Data\Debug"