

<https://github.com/yabushi/TimeStampCamera>

をRUNしようとすると、

[code]

    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.SurfaceTexture.setDefaultBufferSize(int, int)' on a null object reference
            at com.example.shigeki.timestampcamera.MainActivity.createCameraPreviewSession(MainActivity.java:166)
            at com.example.shigeki.timestampcamera.MainActivity.access$000(MainActivity.java:32)
            at com.example.shigeki.timestampcamera.MainActivity$1.onOpened(MainActivity.java:88)
            at android.hardware.camera2.impl.CameraDeviceImpl$1.run(CameraDeviceImpl.java:118)
            at android.os.Handler.handleCallback(Handler.java:810)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:189)
            at android.app.ActivityThread.main(ActivityThread.java:5529)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:950)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)
    
[/code]

とのエラーメッセージが表示されます。  
MainActivityの32,88,118にて  
Nullであるオブジェクトを参照してしまっているというエラーだと思うのですが、  
解決方法がわかりません。


CC BY-SA 4.0
2018-06-10T11:09:33.433
44665
2020-10-04T14:04:55.490
2018-06-10T17:48:38.777
3060
28851
question
android java nullpointerexception
Attempt to invoke virtual method 'void .setDefaultBufferSize on a null object reference


NPEを回避するために、少なくともNullチェックを追加しておいた方がいいと思います。  
[`TextureView.html#isAvailable()`](https://developer.android.com/reference/android/view/TextureView.html#isAvailable\(\))というメソッドがあるので、これを`mTextureView.getSurfaceTexture();`の前に追加した方がいいでしょう。

[code]

    if (!mTextureView.isAvailable()) {
        return; // TODO 正しい例外処理を実装すること
    }
    
[/code]


CC BY-SA 4.0
2018-06-11T01:04:27.253
44677
2018-06-11T02:43:04.203
2018-06-11T02:43:04.203
21092
21092
44665
answer