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

问题描述 投票:18回答:8

我正在使用phonegap在Android上开发一个应用程序,当我在手机上测试它时我得到了这个错误Application Error Is a directory (file:///#android_asset/www/index.html)我只在手机上没有互联网连接时才会出现此错误。

有什么建议?

javascript android cordova
8个回答
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文件夹中。这解决了我的问题。


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并进入您的应用程序,在该应用程序中它将安静地失败。


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>

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>

这就像魔术一样。有用。

大家欢呼。


0
投票

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

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

我希望这对你有帮助。


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.
-->

希望这可以帮助。


0
投票

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


-4
投票

你应该使用:

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

作为URL

© www.soinside.com 2019 - 2024. All rights reserved.