将Cordova更新到v6.4.0并将Android平台更新到6.0.0后,我的应用程序不再工作了。我明白了:
Traceback (most recent call last):
File "fcc.py", line 34, in <module>
zip_file_object = zipfile.ZipFile(file_handle)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/zipfile.py", line 770, in __init__
self._RealGetContents()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/zipfile.py", line 807, in _RealGetContents
endrec = _EndRecData(fp)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/zipfile.py", line 208, in _EndRecData
fpin.seek(0, 2)
AttributeError: addinfourl instance has no attribute 'seek'
我尝试删除所有插件并逐个添加。我发现这是cordova-plugin-device和cordova-plugin-network-information的一个问题。我的所有插件都是最新的
答案 0 :(得分:9)
如果您恰好在应用中运行Crosswalk插件,我只是确认卸载并重新安装;
cordova plugin add https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview
摆脱
deviceready has not fired after 5 seconds. cordova.js:1223
Channel not fired: onCordovaInfoReady cordova.js:1216
Channel not fired: onCordovaConnectionReady cordova.js:1216
您可以在此处查看Crosswalk的Jira问题列表中的问题。
答案 1 :(得分:4)
这应该在cordova-android 6.1.0中修复。它尚未添加到npm-registry中,因此您可以将它放在config.xml中来使用它:
<engine name="android" spec="https://github.com/apache/cordova-android.git#6.1.0"/>
答案 2 :(得分:3)
解决方案:
拨打电话&#34; cordova.js&#34;到页面的最后一行。
<script type="text/javascript" src="cordova.js"></script>
</body>
</html>
...问候语
答案 3 :(得分:2)
我最近在iOS上遇到过同样的问题。最终对我有用的是remove
平台的简单add
和ios
:
cordova platform remove ios
cordova platform add ios
自从我完全重建ios
平台以来已经有一段时间了,就像你一样,我在那段时间做了其他重大改变(Cordova升级,XCode升级等)。我的理论是我的config.xml
或现有ios
版本在某种程度上不符合最新的Cordova要求。执行platform remove
和platform add
将清除构建文件并更新config.xml
。
我怀疑这适用于OP,但对于遇到同样问题的其他人,请确保您已在cordova.js
文件中加入index.html
。如果您还没有这样做,请添加以下行:
<script src="cordova.js"></script>
刚开始使用科尔多瓦时,这是一个非常常见的遗漏。
答案 4 :(得分:0)
对于那些不想降级Cordova的人(比如我),请按照我的指南(我在一整天的努力后成功做到了):
从root用户打开cordova CLI:cordova platform remove android
删除后:cordova platform add android
。您的包项目(结构)文件夹保留,所以不用担心。
cordova plugin ls
然后删除每个cordova插件execpt Notfication和Whitelist(Cordova的默认安装插件)。cordova plugin add <plugin-id>
逐个添加使用的插件。返回备份文件夹:克隆AndroidManifest.xml
以及app/src/main
中的所有内容。其中包括:资产, java ,图书馆和资源。您只需要(实际上我建议)遗漏的一个文件是 res / xml / config.xml 。 不克隆此内容。让科尔多瓦稍后建造。
Cordova CLI(来自root cordova项目,而非平台/ android):cordova build android
app/src/main/res/xml/config.xml
。科尔多瓦无法检测到你的第三个插件答案 5 :(得分:0)
确保在index.html正文底部包含cordova.js
永远不要忘记必须位于type="text/javascript"
src=""
<!DOCTYPE html>
<html>
<head></head>
<body>
...
<script type="text/javascript" src="cordova.js"></script>
</body>
</html>
还在html头上包含此元标记
<meta http-equiv="X-UA-Compatible" content="IE=edge">
然后删除当前安装的平台,然后重新添加
cordova platform remove android
cordova platform remove browser
cordova platform remove ios
cordova platform add android
cordova platform add browser
cordova platform add ios
提供服务然后刷新浏览器或构建它
如果这不能解决您的问题,请尝试逐个删除一些插件或删除您的脚本以找出错误..
答案 6 :(得分:0)
我正在运行Visual Studio并在Chrome模拟器中出现此错误。我发现启动Web Inspector会允许Visual Studio提示各种插件所要求的一些钩子,点击各种弹出窗口让我超越了这个。它必须与Visual Studio设置Cordova插件模拟的方式有关,但是在我的设置中,它被阻止显示弹出窗口。
答案 7 :(得分:0)
我不知道这个问题的真正原因,
但是我尝试从插件列表中删除cordova-plugin-whitelist
和cordova-plugin-device
并再次添加。
幸运地解决了这个问题,
答案 8 :(得分:0)
如果您正在iphone上进行测试,则问题与 Content-Security-Policy,要么将其删除,要么更改规则以使其可以运行!
还要确保将cordova.js添加到html文件的末尾。
<script type="text/javascript" src="cordova.js"></script>
</body>
</html>
答案 9 :(得分:0)
如果这仍然与任何人有关:
对我有用的是删除然后再添加一个插件,即“ katzer cordova-plugin-local-notifications”。
答案 10 :(得分:0)
就我而言,我的工作项目突然停止并显示上述错误
我的项目开始工作
1。卸载手机调试api
2。清除项目文件夹
安卓用户
cd android
./gradlew clean
或
gradlew clean
iOS 用户
cd ios
xcodebuild clean