16

编辑以澄清: 这个<名称>你可以看到,在下面的一些文件中,实际上并不是这些文件的一部分,但其中包含了我必须审查的公司名称。

测试情况:

  • 科尔多瓦4
  • OS X约塞米蒂
  • Android 4.4设备(结合USB)
  • 使用终端;不是Eclipse

发生了什么:使用cordova运行--释放成功构建并签署.apk,移动设备将毫无问题地安装并打开它。但是,这些插件都不起作用。例如:

title.on('单击',函数(){if(!navigator.camera){警报(“无摄像头!”);}其他{navigator.camera.getPicture(函数成功(数据){//做点什么},函数错误(数据){});}});

始终提醒没有摄像头,这意味着Cordova没有添加照相机对象窗口导航器对象。

下面是关于我的cordova安装和一些xml文件的一些信息,据我所知,没有什么不合适的地方。请注意,不仅仅是相机不工作,我只是用它作为一个例子。

科尔多瓦信息:

节点版本:v0.10.29科尔多瓦版本:4.0.1-nightly.2014.9.29Config.xml文件:<?xml版本=“1.0”编码=“utf-8”?><widget id=“com.<name>.App”version=“0.0.1”xmlns=“http://www.w3.org/ns/widgets网站“xmlns:cdv=”http://cordova.apache.org/ns/1.0"><name><name>迷你</name><说明>德<name>app voor je telefoon</description><author email=“stephan@<name>.nl”href=“https://<name>.nl”>Het<name>团队</author><content src=“index.html”/><access origin=“*”/><preference name=“SplashScreen”value=“screen”/><preference name=“SplashScreenDelay”value=“2000”/></widget>插件:org.apache.cordova.camera,org.apacher.cordova.dialogs,org.aapache.cordova/file,org.apche.cordiva.file-transfer,org.apphe.cordoba.media,org/apache.coordova.media-captureAndroid平台:可用的Android目标:----------id:1或“android-19”名称:Android 4.4.2类型:平台API等级:19版次:4皮肤:HVGA、QVGA、WQVGA400、WQV GA432、WSVGA、W VGA800(默认)、WVGA854、WXGA720、WXGA 800、WXG A800-7in标签/ABIs:default/armeabi-v7a,default/x86

cordova/config.xml

<?xml版本=“1.0”编码=“utf-8”?><widget id=“com.<name>.App”version=“0.0.1”xmlns=“http://www.w3.org/ns/widgets网站“xmlns:cdv=”http://cordova.apache.org/ns/1.0">迷你版<说明>德<name>app voor je telefoon</description><author电子邮件=“stephan@<name>.nl”href=“https://<name>.nl”>Het<name>团队</author><content src=“index.html”/><access origin=“*”/><preference name=“SplashScreen”value=“screen”/><preference name=“SplashScreenDelay”value=“2000”/></widget>

cordova/platforms/android/AndroidManifest.xml<

?xml版本=“1.0”编码=“utf-8”?><manifest-android:hardwareAccelerated=“true”android:versionCode=“1”android=versionName=“0.0.1”package=“com.kaartje2go.App”xmlns:android=“http://schemas.android.com/apk/res/android"><支持屏幕android:anyDensity=“true”android:largeScreens=“true”android:normalScreens=“true”android:resizeable=“true”android:smallScreens=“true”android:xlargeScreens=“true”/><uses-permission android:name=“android.permission.INTERNET”/><application android:hardwareAccelerated=“true”安卓:icon=“@drawable/icon”android:label=“@string/app_name”><activity android:configChanges=“orientation|keyboardHidden|keyboard | keyboard | screenSize|locale”android:label=“@string/activity_name”androids:launchMode=“singleTop”android=name=“CordovaApp”android:theme=“@android:2style/theme.Black.NoTitleBar”andronid:windowSoftInputMode=”adjustResize“><intent-filter android:label=“@string/launcher_name”><action android:name=“android.intent.action.MAIN”/><category android:name=“android.intentation.category.LAUNCHER”/></into-filter></活动></应用程序><使用sdk android:minSdkVersion=“10”android:targetSdkVersion=“19”/><uses-permission android:name=“android.permission.WRITE_EXTERNAL_STORAGE”/><使用权限android:name=“android.permission.RRECORD_AUDIO”/><uses-permission android:name=“android.permission.MODIFY_AUDIO_SETTINGS”/><uses-permission android:name=“android.permission.READ_PHONE_STATE”/><uses-permission android:name=“android.permission.RECORD_VIDEO”/><uses-permission android:name=“android.permission.VIBRATE”/></manifest>

cordova/platforms/android/res/xml/config.xml

<?xml版本=“1.0”编码=“utf-8”?><widget id=“com.<name>.App”version=“0.0.1”xmlns=“http://www.w3.org/ns/widgets网站“xmlns:cdv=”http://cordova.apache.org/ns/1.0"><preference name=“loglevel”value=“DEBUG”/><功能name=“相机”><param name=“android-package”value=“org.apache.cordova.camera.CameraLauncher”/></功能><feature name=“通知”><param name=“android-package”value=“org.apache.cordova.dialogs.Notification”/></功能><feature name=“File”><param name=“android-package”value=“org.apache.cordova.file.FileUtils”/><param name=“onload”value=“true”/></功能><feature name=“文件传输”><param name=“android-package”value=“org.apache.cordova.filetransfer.filetransfer”/></功能><feature name=“Media”><param name=“android-package”value=“org.apache.cordova.media.AudioHandler”/></功能><功能name=“捕获”><param name=“android-package”value=“org.apache.cordova.mediacapture.Capture”/></功能><feature name=“SplashScreen”><param name=“android package”value=“org.apache.codova.ssplashscreen.splashscreen”/></功能><feature name=“振动”><param name=“android-package”value=“org.apache.cordova.vibration.vibration”/></功能>迷你版<说明>De<name>应用程序voor je telefoon</description><author email=“stephan@<name>.nl”href=“https://<name>.nl”>Het<name>团队</author><content src=“index.html”/><access origin=“*”/><preference name=“SplashScreen”value=“screen”/><preference name=“SplashScreenDelay”value=“2000”/></widget>

3个答案

重置为默认值
54

清单:你的插件加载了吗?

  • 你的索引.html加载科尔多瓦.js脚本?(即,如果您有网址:www/index.html那么你就可以引用科尔多瓦.js。此文件不在网址:www目录,但由Cordova自动生成并插入到您的应用程序中)
  • 插件javascript是否已加载?使用Chrome或Safari远程调试android/iOS应用程序。
  • cordova插件ls:您的插件是否已列出?
  • 插件/android.json:列出了你的插件吗?
  • 平台/android/assets/www有所有文件吗?(即a插件包含脚本的文件夹,cordova_plugins.js公司应该提到你的插件,一个特定于平台的插件科尔多瓦.js)

你能听一下设备制造商事件检查Cordova是否初始化?(如果所有脚本都准备好了)

5
  • 这家伙是冠军。我看到了很多关于Cordova的老教程,它们都很混乱,因为它们都不一样(Cordova似乎改变了很多结构),我想科尔多瓦.js不需要再添加了,因为我找不到它。我假设它会在构建过程中自动添加。最后,事情就是这样。我补充道科尔多瓦.js到我的索引.html一切正常! 评论 2014年10月30日13:48
  • 1
    这对我帮助很大。我把头发拔了出来,想弄明白为什么这不管用!
    – 杰森
    评论 2015年4月11日15:10
  • 1
    我已经cordova插件添加s、 但我的cordova插件ls返回empty,而我的插件文件夹为empty。知道为什么吗? 评论 2015年7月16日8:10
  • 谢谢,我不知道我是如何忽略了cordova.js文件的包含。cordova的许多其他功能似乎都很好,以至于我被误导,认为相机插件特别有问题。
    – 普龙根
    评论 2015年10月5日14:13
  • 如何检查插件javascript是否工作?我在Chrome上没有收到任何错误,但在iPhone模拟器上,cordova摄像头插件不起作用。 评论 2017年8月17日3:51

如果你的插件不工作,你也可以尝试以下步骤:

cordova插件列表;cordova插件删除my-cordova-plugin--save;cordova插件添加my-cordova-plugin--nosave;

还要注意以下插件依赖项:

  1. 这个文件,文件传输、和照相机插件都依赖于兼容性插件;所以兼容性需要最后删除。
  2. 这个文件传输插件依赖于文件,所以文件需要先删除。
0

今天我了解了另一个原因:确保您的项目没有第二个名为科尔多瓦.js,无论在哪里。如果cordova插件管理发现这样一个文件包含在标签中,它可能会错误地认为您自己的文件的基本路径是cordova的基本路径科尔多瓦.js并将其用作加载自己的JS文件的基本路径。

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.