Javascript 应用程序错误是一个目录(文件://#android_asset/www/index.html)
我正在使用phonegap在android上开发一个应用程序,当我在手机上测试它时,我发现这个错误Javascript 应用程序错误是一个目录(文件://#android_asset/www/index.html),javascript,android,cordova,Javascript,Android,Cordova,我正在使用phonegap在android上开发一个应用程序,当我在手机上测试它时,我发现这个错误应用程序错误是一个目录(文件://#android_asset/www/index.html) 只有当我的手机没有互联网连接时,我才会出现这个错误 有什么建议吗?您应该使用: file:///android_asset/www/index.html 作为URL,我在这里找到了答案: 6.1与服务器的连接不成功(file:///android_asset/www/index.html) 其中:在A
应用程序错误是一个目录(文件://#android_asset/www/index.html)
只有当我的手机没有互联网连接时,我才会出现这个错误
有什么建议吗?您应该使用:
file:///android_asset/www/index.html
作为URL,我在这里找到了答案:
6.1与服务器的连接不成功(file:///android_asset/www/index.html)
其中:在Android设备上启动应用程序时
您在index.html文件中放置的任何请求远程
资源将导致针对android设备引发上述错误,
然后你的申请就会失效。Weinre调试器是一种常见的调试器
此错误的原因
解决方案:将远程资源的加载移出index.html并
在应用程序中,它将悄悄地失败
这意味着,在index.html中,您正在使用需要访问internet的资源。查看index.html并查找直接从internet链接的任何CSS、javascript或Cordova文件。如果是这样,您必须下载相关文件并使其成为本地文件 当我像这样直接链接我的Jquery mobile 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文件夹中。这解决了我的问题。一个空白的访问标签允许访问所有外部资源
<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.
-->
-->
希望这能有所帮助。我按照“”进行操作,我也有同样的问题。
但是我解决了。
我的问题是下载的phonegap和随后的GUI之间不一致
您必须确保以下详细信息:
-在intex.html中链接正确的js脚本版本(例如:cordova-2.7.0.js)
-它必须匹配下载的phonegab版本。
phonegab版本和链接的js脚本必须匹配
我希望这对您有所帮助。例如,您只需将'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>
标题
window.location='./main.html';
我找到了答案
在
标记中包含phonegap.js。它是phonegap在构建期间所必需的
<head>
<script src="phonegap.js"></script>
</head>
您不需要下载phonegap.js。您只需要包含如图所示的代码。在构建过程中,phonegap将自动查找并包含它。如果没有,当您运行本机应用程序时,应用程序将在phonegap服务器上查找phonegap.js,这将花费很长时间。最终,应用程序加载将超时,并显示错误消息
哇!我相信这一点。我遇到了这个问题,我很沮丧,几乎放弃了使用phonegap。然而,我在Phonegap的网站上读到了以下标题下关于Phonegap.js的文章
“确保您仍然可以访问PhoneGap API”
“删除phonegap.js后,您需要确保应用程序仍然可以访问phonegap API
要执行此操作,只需确保在index.html中进行了以下引用”
这就像魔术。它起作用了
为大家干杯。确保页面中包含了phonegap.js或cordova.js脚本。
这只能在您的移动设备上使用。在哪里使用它?我正在使用phonegap,所以我只有一个html文件和一个JS文件。这就是问题所在,我没有使用它,当有互联网连接时,应用程序可以正常工作,否则它会显示此错误,然后崩溃。我在这里找到了答案:但我仍然不知道是什么原因:“将远程资源的加载从index.html移到应用程序中,在应用程序中,远程资源的加载将悄悄失败。“我的意思是,把它移出index.html的确切位置?这也是我的问题。忘了从index.htmlb中删除weinre调试脚本,但整个应用程序使用互联网,它发出的api请求不是本地的,我不能将它们放在本地。是否有方法提醒用户应该连接到互联网才能使用该应用程序?是的,Cordova/Phonegap允许您检查互联网连接。此链接可以帮助您(我不确定您使用的是什么版本):。根据使用此连接功能收到的响应,您可以设置onDeviceReady()警告消息哇!谢谢这篇文章。它工作得很好。我使用PhoneGap+Eclipse构建了一个成功的Web应用程序Sencha Touch。我认为如果你需要该应用程序提供的cordova API(cordova.js),这将不起作用。我不喜欢这样。有什么区别?(技术)-1因为你没有说你是从这里得到的:这是应用程序还是服务器端?
<script src="phonegap.js"></script>