2017-08-03 184 views
0

我正在开发一个使用Cordova和Worklight 6.3的应用程序,并且我有使用camera.getPicture函数的问题。navigator.camera.getPicture在android中不工作

请检查下面的代码片段的相机。

var cameraOptions = { 
    quality: 50, 
    targetWidth: 720, 
    targetHeight: 600, 
    encodingType: Camera.EncodingType.JPEG, 
    destinationType: Camera.DestinationType.DATA_URL, 
    correctOrientation: true, 
    sourceType: Camera.PictureSourceType.CAMERA 
}; 

Android的错误日志:

08-04 12:43:26.727: E/PluginManager(1168): Uncaught exception from plugin 
08-04 12:43:26.727: E/PluginManager(1168): java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object reference 
08-04 12:43:26.727: E/PluginManager(1168): at android.support.v4.content.FileProvider.parsePathStrategy(FileProvider.java:560) 
08-04 12:43:26.727: E/PluginManager(1168): at android.support.v4.content.FileProvider.getPathStrategy(FileProvider.java:534) 
08-04 12:43:26.727: E/PluginManager(1168): at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:376) 
08-04 12:43:26.727: E/PluginManager(1168): at cordova.camera.CameraLauncher.takePicture(CameraLauncher.java:302) 
08-04 12:43:26.727: E/PluginManager(1168): at cordova.camera.CameraLauncher.callTakePicture(CameraLauncher.java:276) 
08-04 12:43:26.727: E/PluginManager(1168): at cordova.camera.CameraLauncher.execute(CameraLauncher.java:185) 
08-04 12:43:26.727: E/PluginManager(1168): at org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:86) 
08-04 12:43:26.727: E/PluginManager(1168): at org.apache.cordova.PluginManager.exec(PluginManager.java:153) 
08-04 12:43:26.727: E/PluginManager(1168): at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:61) 
08-04 12:43:26.727: E/PluginManager(1168): at org.apache.cordova.ExposedJsApi.exec(ExposedJsApi.java:40) 
08-04 12:43:26.727: E/PluginManager(1168): at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method) 
08-04 12:43:26.727: E/PluginManager(1168): at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:39) 
08-04 12:43:26.727: E/PluginManager(1168): at android.os.Handler.dispatchMessage(Handler.java:102) 
08-04 12:43:26.727: E/PluginManager(1168): at android.os.Looper.loop(Looper.java:148) 
08-04 12:43:26.727: E/PluginManager(1168): at android.os.HandlerThread.run(HandlerThread.java:61) 

我按照IBM修复,但同样的错误 https://www.ibm.com/support/knowledgecenter/SSHS8R_6.3.0/com.ibm.worklight.dev.doc/dev/t_android_cam_api_24.html

AndroidManifest.xml中

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

<provider 
     android:name="android.support.v4.content.FileProvider" 
     android:authorities="${applicationId.fileprovider" 
     android:exported="false" 
     android:grantUriPermissions="true" > 
     <meta-data 
      android:name="android.support.FILE_PROVIDER_PATHS" 
      android:resource="@xml/provider_paths" /> 

+0

特定于Android版本的问题? –

+0

请参阅:[我如何避免滥用标签?](https://meta.stackoverflow.com/questions/354427/how-do-i-avoid-misusing-tags) – EJoshuaS

+0

Vinin K,我测试了几个版本同样的问题:/ –

回答

-1
add the below line in default.xml 
<preference name="applicationId" value="com.APPlol.test" /> 
// ID in widget is the value 
<widget id="com.APPlol.test"></widget> // in config .xml