【问题标题】:Phonegap Android: Unknown chromium error: -6Phonegap Android:未知铬错误:-6
【发布时间】:2013-04-15 12:11:56
【问题描述】:

我正在创建一个 Phonegap Android 应用,但在向其添加插件时遇到了问题。 Cordova 版本是 2.2.0。我没有使用 jQM 或 Sencha Touch。我在 Android 4.0 上测试该应用。

我指的插件是Android Phonegap plugin。这是我的index.html 文件:

<!DOCTYPE html>
<html>
  <head>
    ...
  </head>
  <body>
    <div class="wrapper">
      ...
    </div>

    <script type="text/javascript" src="vendor/cordova-2.2.0.js"></script>
    <script type="text/javascript" src="assets/application.js"></script>
    <script type="text/javascript" src="js/index.js"></script>
    <script type="text/javascript" src="js/datePickerPlugin.js"></script>
  </body>
</html>

这是我的主要 Java 文件:

import android.app.Activity;
import android.os.Bundle;
import org.apache.cordova.*;

public class looker extends DroidGap
    {
        @Override
        public void onCreate(Bundle savedInstanceState)
            {
                super.onCreate(savedInstanceState);
                super.setIntegerProperty("splashscreen", R.drawable.splash);
                super.loadUrl("file:///android_asset/www/index.html", 7000);
            }
    }

所以为了了解问题是否出在插件中,我在assets/application.js最小化 this file 我使用的所有最小化脚本都在其中。我从index.html 中删除了插件的脚本标签,插件运行良好!所以这可能与 URL 的有关?

到目前为止我尝试了什么?

我进行了很多研究,并尝试了几种解决其他类似问题的方法。

  1. 确保我的主类中有 3 个 / 用于 loadUrl

    public void onCreate(Bundle savedInstanceState)
        {
          super.onCreate(savedInstanceState);
          super.setIntegerProperty("splashscreen", R.drawable.splash);
          super.loadUrl("file:///android_asset/www/index.html", 7000);
        }
    

    从一开始就是这样,没有任何区别

  2. 尝试在 super.loadUrl() 之前调用 super.init()。 效果不佳

  3. 试过这个:

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.init();
        super.setIntegerProperty("loadUrlTimeoutValue", 6000);
        super.loadUrl("file:///android_asset/www/index.html");
    }
    

    仍未解决问题。

  4. 通过添加alert(); 来检查文件是否已加载到应用程序中。 加载

一般来说。如果需要,我们很乐意为您提供更多信息以解决此问题。提前致谢!

【问题讨论】:

  • 确认一下,您正在尝试使用 DatePickerPlugin?
  • 是的,我正在使用 DatePickerPlugin。我在帖子的开头提供了一个链接。虽然我很确定它与插件没有直接关系,因为这个问题发生在我尝试从 index.html 加载的其他文件中
  • 您是否完全按照自述文件进行集成?
  • 正如我在帖子中所写的,该插件有效。插件的集成不是这里的问题。我在 application.js 中最小化了它,效果很好!仍然当我在 index.html 中添加插件时,我得到了铬错误。路径也可以...

标签: android cordova plugins


【解决方案1】:

我按照指南进行操作,插件运行良好。

但是,当我在 config.xml 中有这个时,我能够复制“未知铬错误:-6”:

&lt;plugin name="DatePickerPlugin1" value="com.phonegap.plugin.DatePickerPlugin"/&gt;

确保 XML 中的“名称”属性是 DatePickerPlugin,因为这是 JavaScript 代码用于插件的名称:https://github.com/phonegap/phonegap-plugins/blob/master/Android/DatePicker/datePickerPlugin.js#L33

不过,可能还有其他方法会产生相同的错误。如果这没有帮助,您可以发布或链接到实际调用此插件的 HTML 文件以及 config.xml 吗? (确保您使用的是 res/xml/config.xml 而不是 res/xml/plugins.xml,这里已弃用:http://cordova.apache.org/docs/en/2.0.0/guide_upgrading_android_index.md.html#Upgrading%20Cordova%20Android

【讨论】:

  • 这是我的config.xml。调用插件的代码在assets/application.js。它与示例中的相同。该文件包含我正在使用的所有脚本,因为我使用的是 Backbone.js 并且有很多 .js 文件。简而言之 - 我有一个网络版本,我将 JS 文件最小化到 Android 应用程序并构建它。到目前为止,任何功能都没有问题。让我提醒一下,如果我将datePickerPlugin.js 与所有其他人一起最小化,它就可以正常工作。
  • 好的,所以当一切都最小化时,应用程序可以正常工作。当 datePickerPlugin.js 没有被最小化但其他一切都被最小化时,应用程序就会崩溃。那正确吗?当什么都没有被最小化时会发生什么?它还破吗?如果不是,那是个好消息,因为这意味着问题是最小化的非插件 JS 代码可能正在使用 datePickerPlugin.js 文件名或其他东西的最小化版本......? config.xml 看起来不错。
  • 于是我调试了一段时间,是这样的。如果我最小化 cordova-2.2.0.jsdatePickerPlugin.js 以及它的所有 JS 文件。如果我从最小化文件中删除它们并仅将它们添加到 index.html 日期选择器返回铬错误。应用程序在任何时候都不会失败,它在两种情况下都会一直运行。当我在datePickerPlugin.js 内发出警报时,我收到警报,因此文件加载。但是当我在第 57 行 alert(window.plugins.datePicker); 时,由于某种原因它返回 undefined ...
  • 如果你只提醒 window.plugins 会发生什么?或者更好的是,像var output = ''; for (property in window) { output += property + ': ' + window[property]+'; '; } alert(output); 这样的东西,希望能向我们展示该插件至少已注册。
  • alert(window.plugins) 返回未定义。这就是我使用 for 循环得到的结果:cl.ly/image/1u41451A2u0H。事实上,我使用 Backbone.js 并且每个元素都使用其所在模板的相应视图呈现。这意味着在 document.ready 上我没有输入元素,单击时会触发插件。这些输入是在渲染视图时创建的。不知道会不会是这样?
【解决方案2】:

我得到同样的错误:Unknown Chromium error -6"
我的错误是错误的部分路径。

我必须为部分指定相对路径

当您使用 ng-include 或模块 ngRoute 时,
而不是这个:

ng-include="'/partials/file.html'"

放这个:

ng-include="'partials/file.html'"

如果你看我删除了路径中的第一个斜线。

这种方法解决了我的铬错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 2014-04-15
    相关资源
    最近更新 更多