应用程序错误是一个目录(file:///#android_asset/www/index.html)

时间:2013-03-20 21:46:14

标签: javascript android cordova

我正在使用phonegap在Android上开发应用程序,当我在手机上测试时,我收到此错误Application Error Is a directory (file:///#android_asset/www/index.html) 我在手机上没有网络连接时才会收到此错误。

有什么建议吗?

8 个答案:

答案 0 :(得分:13)

这意味着,在index.html中,您使用的是需要访问Internet的资源。查看index.html并查找直接从Internet链接的任何CSS,javascript或Cordova文件。如果是这样,您必须下载相关文件并将其设置为本地文件。

当我直接链接我的Jquery移动JS文件时,我遇到了同样的问题:

<script type="CSS/javascript" src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.js">

我做的是,下载了jquery.mobile-1.3.0.js文件并将其放在我的www文件夹中。这解决了我的问题。

答案 1 :(得分:8)

我在这里找到答案: http://dev.wavemaker.com/wiki/bin/wmdoc_6.5/PhoneGap?xpage=print#HTheconnectiontotheserverwasunsucessful28file3A2F2F2Fandroidasset2Fwww2Findexhtml29

  

6.1与服务器的连接不成功(file:///android_asset/www/index.html)

     

WHERE:在Android设备上启动应用程序时。

     

您在index.html文件中放置的任何请求远程的内容   资源将导致Android设备抛出上述错误,   然后你的申请就会死去。 Weinre调试器很常见   导致此错误。

     

解决方案:将远程资源的加载移出index.html和   进入你的应用程序,它会安静地失败。

答案 2 :(得分:4)

你只需要将'index.html'重命名为'main.html',然后创建一个新的(虚拟)'index.html',只需要重定向到'main.html'

新'index.html'的内容:

<!doctype html>

<html>
    <head>
        <title>Title</title>
        <script>
            window.location='./main.html';
        </script>
    </head>
    <body>      
    </body>
</html>

答案 3 :(得分:1)

我找到了答案。

<head>标记中加入phonegap.js。在构建期间,phonegap需要它。

<head>
<script src="phonegap.js"></script> 
</head>

您无需下载phonegap.js。您只需要包含所示的代码。在构建期间,phonegap将查找并自动包含它。如果没有,当您运行Native应用程序时,应用程序将在phonegap服务器上查找phonegap.js,这需要很长时间。最终,您的应用程序加载将超时,并显示您看到的错误消息。

哇!我可以相信这一点。我遇到了这个问题,我气馁,几乎放弃了使用phonegap。但是,我在Phonegap的网站上看到了关于下面子标题下的phonegap.js

https://build.phonegap.com/docs/app-overview

“确保您仍然可以访问PhoneGap API”

“删除phonegap.js后,您需要确保您的应用程序仍然可以访问PhoneGap API。

为此,只需确保在index.html“

中进行以下引用
<script src="phonegap.js"></script>

这就像魔术一样。它有效。

为每个人欢呼。

答案 4 :(得分:0)

空白访问标记允许访问所有外部资源。

<access origin="*" /> - a wildcard access tag allows access to all external resource.

否则,您可以指定特定域:

-->
    <access origin="127.0.0.1*"/> <!-- allow local pages -->
<!--
<access origin="http://phonegap.com" /> - allow any secure requests to http://honegap.com/
<access origin="http://phonegap.com" subdomains="true" /> - same as above, but including subdomains, such as http://build.phonegap.com/
<access origin="http://phonegap.com" browserOnly="true" /> - only allows http://phonegap.com to be opened by the child browser.
-->

希望这有帮助。

答案 5 :(得分:0)

我遵循“quick started guie”,我遇到了同样的问题。 但我解决了。 我的问题是下载的phonegap和guie之间的不一致。

你必须确定这个细节: - 进入intex.html,你链接正确的js脚本版本(例如:cordova-2.7.0.js) - 必须匹配下载的phonegab版本。 所连接的phonegab版本和js脚本必须匹配。

我希望这对你有所帮助。

答案 6 :(得分:0)

确保您在页面中包含了phonegap.js或cordova.js脚本。 这仅适用于您的移动设备。

答案 7 :(得分:-4)

您应该使用:

file:///android_asset/www/index.html

作为网址