natjs / nat

A powerful kit for adding native functionalities to your weex app.
http://natjs.com
282 stars 25 forks source link

调用camera.captureImage闪退 #41

Closed biscuithx closed 6 years ago

biscuithx commented 6 years ago
Nat.camera.captureImage({}, (err, ret) => {
        if (err) {
          Nat.toast('[ERROR] ' + JSON.stringify(err))
          return
        }
        Nat.toast(JSON.stringify(ret, null, 2))
        this.path = ret.path
      })

环境:macos10.13.4 android8.0.0(miui9) 操作:新建weex项目,安装了最新的android stutio,引入Natjs,npm run android,手机上测试每次调用captureImage就闪退,日志如下:

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at com.taobao.weex.bridge.NativeInvokeHelper$1.run(NativeInvokeHelper.java:50)
    at com.taobao.weex.common.WXThread$SafeRunnable.run(WXThread.java:49)
    at android.os.Handler.handleCallback(Handler.java:789)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6665)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)
Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invoke(Native Method)
    at com.taobao.weex.bridge.MethodInvoker.invoke(MethodInvoker.java:46)
    at com.taobao.weex.bridge.NativeInvokeHelper$1.run(NativeInvokeHelper.java:48)
    ... 8 more
Caused by: android.os.FileUriExposedException: file:///storage/emulated/0/Instapp/nat_img_1526994625609.jpg exposed beyond app through ClipData.Item.getUri()
    at android.os.StrictMode.onFileUriExposed(StrictMode.java:1958)
    at android.net.Uri.checkFileUriExposed(Uri.java:2356)
    at android.content.ClipData.prepareToLeaveProcess(ClipData.java:941)
    at android.content.Intent.prepareToLeaveProcess(Intent.java:9747)
    at android.content.Intent.prepareToLeaveProcess(Intent.java:9732)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1611)
    at android.app.Activity.startActivityForResult(Activity.java:4540)
    at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)
    at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:67)
    at android.app.Activity.startActivityForResult(Activity.java:4498)
    at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:720)
    at com.instapp.nat.camera.CameraModule.captureImage(CameraModule.java:69)
    at com.instapp.nat.weex.plugin.Camera.Camera.realCaptureImage(Camera.java:59)
    at com.instapp.nat.weex.plugin.Camera.Camera.captureImage(Camera.java:53)
    ... 11 more
biscuithx commented 6 years ago

另外,我试过nat-explore,拉下代码在我本地跑能通,但是我自己用weex-kit搭建的项目却有上述问题,不知是何差异引起的。

acathur commented 6 years ago

请参考 nat-explorer/WXApplication.java 对Android项目进行改动

biscuithx commented 6 years ago

谢谢,问题已解决

zhangfei56 commented 6 years ago

hello @biscuithx 你修改的哪儿的配置 解决问题的?

androidzhangyanhui commented 6 years ago

谢谢,终于解决。