Hi all,
i use cameraex to access my cam, if i use android 5 all is good,
but if i use android 6 sometime it's show error
did any one use cameraex same like me?
or maybe i do wrong on my code?
i use cameraex to access my cam, if i use android 5 all is good,
but if i use android 6 sometime it's show error
did any one use cameraex same like me?
or maybe i do wrong on my code?
B4X:
cameraexclass_camera_ready (java line: 114)
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
at anywheresoftware.b4a.agraham.reflection.Reflection.runmethod(Reflection.java:205)
at anywheresoftware.b4a.agraham.reflection.Reflection.RunMethod(Reflection.java:802)
at com.astatech.cameraexclass._camera_ready(cameraexclass.java:114)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:169)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:153)
at anywheresoftware.b4a.objects.CameraW$2$1.run(CameraW.java:139)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5480)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
B4X:
cameraexclass_camera_ready (java line: 114)
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
at anywheresoftware.b4a.agraham.reflection.Reflection.runmethod(Reflection.java:205)
at anywheresoftware.b4a.agraham.reflection.Reflection.RunMethod(Reflection.java:802)
at com.astatech.cameraexclass._camera_ready(cameraexclass.java:114)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:169)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:153)
at anywheresoftware.b4a.objects.CameraW$2$1.run(CameraW.java:139)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5480)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
B4X:
#Region Module Attributes
#FullScreen: True
#IncludeTitle: False
#End Region
'Activity module
Sub Process_Globals
Private frontCamera As Boolean = False
Dim path_foto As String
End Sub
Sub Globals
Private Panel1 As Panel
Private camEx As CameraExClass
Dim ImageView1 As ImageView
End Sub
Sub Delay(nMilliSecond As Long)
Dim nBeginTime As Long
Dim nEndTime As Long
nEndTime = DateTime.Now + nMilliSecond
nBeginTime = DateTime.Now
Do While nBeginTime < nEndTime
nBeginTime = DateTime.Now
'Log(nBeginTime)
If nEndTime < nBeginTime Then
Return
End If
DoEvents
Loop
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("2")
'Delay(1000)
If FirstTime Then
InitializeCamera
End If
'If GetDeviceLayoutValues.Scale = 1 Then
' Scale.SetRate(0.6)
' Scale.ScaleAll(Activity,True)
' Scale.SetLeftAndRight(Panel1,0%x,100%x)
' Scale.SetTopAndBottom(Panel1,0%y,100%y)
'Scale.SetLeftAndRight(ImageView1,Panel1.Width-ImageView1.Width,100%x)
'ImageView1.Top = ImageView1.Top - 10dip
'End If
End Sub
Sub Activity_Resume
InitializeCamera
End Sub
Private Sub InitializeCamera
Delay(500)
camEx.Initialize(Panel1, frontCamera, Me, "Camera1")
frontCamera = camEx.Front
End Sub
Sub Activity_Pause (UserClosed As Boolean)
camEx.Release
End Sub
Sub Camera1_Ready (Success As Boolean)
If Success Then
camEx.SetPictureSize(1024,768)
camEx.SetJpegQuality(90)
camEx.CommitParameters
camEx.StartPreview
Log(camEx.GetPreviewSize)
Else
ToastMessageShow("Cannot open camera.", False)
End If
End Sub
Sub btnGallery_Click
camEx.TakePicture
End Sub
Sub btnFocus_Click
camEx.FocusAndTakePicture
End Sub
Sub Camera1_PictureTaken (Data() As Byte)
Dim filename As String = "1.png"
Dim dir As String = File.DirRootExternal
Dim dir1 As String = File.DirDefaultExternal
DateTime.DateFormat="hh:mm:ss"
camEx.SavePictureToFile(Data, dir, filename)
camEx.SavePictureToFile(Data, dir1, DateTime.Date(DateTime.now)&".png")
camEx.StartPreview 'restart preview
'send a broadcast intent to the media scanner to force it to scan the saved file.
Dim Phone As Phone
Dim i As Intent
i.Initialize("android.intent.action.MEDIA_SCANNER_SCAN_FILE", _
"file://" & File.Combine(dir, filename))
Phone.SendBroadcastIntent(i)
ToastMessageShow("Picture saved." & CRLF & "File size: " & File.Size(dir, filename), False)
Delay(1000)
Activity.Finish
End Sub
Sub ChangeCamera_Click
camEx.Release
frontCamera = Not(frontCamera)
InitializeCamera
End Sub
Sub btnEffect_Click
Dim effects As List = camEx.GetSupportedColorEffects
If effects.IsInitialized = False Then
ToastMessageShow("Effects not supported.", False)
Return
End If
Dim effect As String = effects.Get((effects.IndexOf(camEx.GetColorEffect) + 1) Mod effects.Size)
camEx.SetColorEffect(effect)
ToastMessageShow(effect, False)
camEx.CommitParameters
End Sub
Sub btnFlash_Click
Dim f() As Float = camEx.GetFocusDistances
Log(f(0) & ", " & f(1) & ", " & f(2))
Dim flashModes As List = camEx.GetSupportedFlashModes
If flashModes.IsInitialized = False Then
ToastMessageShow("Flash not supported.", False)
Return
End If
Dim flash As String = flashModes.Get((flashModes.IndexOf(camEx.GetFlashMode) + 1) Mod flashModes.Size)
camEx.SetFlashMode(flash)
ToastMessageShow(flash, False)
camEx.CommitParameters
End Sub
Sub btnPictureSize_Click
Dim pictureSizes() As CameraSize = camEx.GetSupportedPicturesSizes
Dim current As CameraSize = camEx.GetPictureSize
For i = 0 To pictureSizes.Length - 1
If pictureSizes(i).Width = current.Width And pictureSizes(i).Height = current.Height Then Exit
Next
Dim ps As CameraSize = pictureSizes((i + 1) Mod pictureSizes.Length)
camEx.SetPictureSize(ps.Width, ps.Height)
ToastMessageShow(ps.Width & "x" & ps.Height, False)
camEx.CommitParameters
End Sub
Sub Panel1_Touch (Action As Int, X As Float, Y As Float)
Dim rect1 As Rect
Dim myleft As Int
Dim mytop As Int
myleft = (X/Panel1.width)* 2000 -1000
mytop = (Y/Panel1.Height)*2000 - 1000
Log ("x=" & X & " Y=" & Y)
If Action = Activity.ACTION_UP Then
Log("focusarea: " & Action & " x : " & myleft & " Y : " & mytop)
rect1.Initialize(myleft,mytop,myleft + 200 , mytop + 200)
'camEx.SetFocusArea(rect1, 1000 )
camEx.SetFocusMode("auto")
camEx.CommitParameters '<========= THIS WAS THE PROBLEM
camEx.FocusAndTakePicture
End If
Return True
End Sub