【发布时间】:2017-04-28 12:22:29
【问题描述】:
运行测试相机示例see nativesript-camera repo,在 iOS 模拟器中一切正常,图像(从图库中选择)显示在屏幕上。但是,当我测试运行 Android 模拟器的相同代码时,在相机打开并拍摄照片并单击保存后,照片不会显示在屏幕上。所以我在 promise 应该返回之后添加了一个 console.log 来测试我得到了什么:
takePicture({width: 180, height: 180, keepAspectRatio: false, saveToGallery: saveToGallery}).
then((imageAsset) => {
console.log("IMAGE ASSET", imageAsset);
let source = new imageSourceModule.ImageSource();
source.fromAsset(imageAsset).then((source) => {
console.log(`Size: ${source.width}x${source.height}`);
});
page.bindingContext.set("cameraImage", imageAsset);
},
(err) => {
console.log("Error -> " + err.message);
});
IMAGE ASSET 控制台日志永远不会在终端中显示,我什么意思。甚至我传递的字符串都没有,也没有错误。当我在 iOS 模拟器中运行应用程序时,console.log 确实显示在终端中,但在 Android 中什么也没有。我正在使用 Android Studio 虚拟设备(运行 Android 7.1 的 Nexus 5X)。
我尝试在线搜索以查看其他人是否遇到过此问题。找不到任何东西。有没有人遇到过这个问题并能够解决这个问题?
=== 更新 ===
所以我继续创建了一个新项目并在里面添加了 takePicture 方法。它现在正在返回承诺,但我在 Android 模拟器上收到以下错误:
An uncaught Exception occurred on "main" thread.
com.tns.NativeScriptException:
Calling js method onScanCompleted failed
TypeError: trace.isEnabled is not a function
File: "file:///data/data/org.nativescript.cameraproject/files/app/tns_modules/nativescript-camera/nativescript-camera.js, line: 63, column: 50
StackTrace:
Frame: function:'onScanCompleted', file:'file:///data/data/org.nativescript.cameraproject/files/app/tns_modules/nativescript-camera/nativescript-camera.js', line: 63, column: 51
at com.tns.Runtime.callJSMethodNative(Native Method)
at com.tns.Runtime.access$2400(Runtime.java:33)
at com.tns.Runtime$3.run(Runtime.java:1214)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
当我将 saveToGallery 设置为 false 时,错误消失了......
【问题讨论】:
-
不,这对我有用,我用过很多次相机
-
哦,哇,很高兴知道这一点。 @mast3rd3mon,相机示例适用于您在 Android 上吗?您可以拍摄照片并在屏幕上显示该照片吗?它仅适用于 iOS。您的代码结构是否不同?
-
刚刚注意到别的东西。使用 Angular 的 nativescript-camera 示例在 Android 模拟器和设备上运行良好。这是不起作用的非 Angular 示例。
-
由于原始问题已通过我提出的更改得到修复;您应该将其标记为已接受的答案并使用新问题创建一个新问题。通过这样做,您可能会混淆未来来这里的人......
标签: android camera nativescript