I have a project posted somewhere on the forum called AndroidVideoCapture. It is working on KitKat as far as up to Oreo but does not work on Android 4.0.3 (ICS)
Have added some logs to the wrapper code to see where it goes and does no go and the below is the error message in the B4A log:
As said, I have added numerous logs and it seems to be crashing in AddToParent:
It logs the in DesignerCreateView and then also the in AddToParent but it does not log out AddToParent. Any idea what could cause this not to be working on ICS?
Have added some logs to the wrapper code to see where it goes and does no go and the below is the error message in the B4A log:
B4X:
Installing file.
** Activity (main) Pause, UserClosed = false **
PackageAdded: package:JHS.AndroidVideoCapture
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
in _initialize
in getAudioManagerStreams
in hasCamera
in DesignerCreateView
in AddToParent
Error occurred on line: 38 (Main)
java.lang.RuntimeException: java.lang.NullPointerException
at anywheresoftware.b4a.keywords.LayoutBuilder.loadLayout(LayoutBuilder.java:170)
at anywheresoftware.b4a.objects.ActivityWrapper.LoadLayout(ActivityWrapper.java:209)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:735)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:360)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:260)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:144)
at JHS.AndroidVideoCapture.main.afterFirstLayout(main.java:104)
at JHS.AndroidVideoCapture.main.access$000(main.java:17)
at JHS.AndroidVideoCapture.main$WaitForLayout.run(main.java:82)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.view.ViewGroup.addViewInner(ViewGroup.java:3336)
at android.view.ViewGroup.addView(ViewGroup.java:3208)
at android.view.ViewGroup.addView(ViewGroup.java:3188)
at videowrapper.videoWrapper.AddToParent(videoWrapper.java:212)
at videowrapper.videoWrapper.DesignerCreateView(videoWrapper.java:222)
at anywheresoftware.b4a.objects.CustomViewWrapper.AfterDesignerScript(CustomViewWrapper.java:70)
at anywheresoftware.b4a.keywords.LayoutBuilder.loadLayout(LayoutBuilder.java:162)
... 21 more
As said, I have added numerous logs and it seems to be crashing in AddToParent:
B4X:
//programmatically add view
@Hide
public void AddToParent(ViewGroup Parent, @Pixel int left, @Pixel int top, @Pixel int width, @Pixel int height) {
BA.Log("in AddToParent");
Parent.addView(cv, new BALayout.LayoutParams(left, top, width, height));
BA.Log("out AddToParent");
}
//this method cannot be hidden.
public void DesignerCreateView(PanelWrapper base, LabelWrapper lw, anywheresoftware.b4a.objects.collections.Map props) {
BA.Log("in DesignerCreateView");
ViewGroup vg = (ViewGroup) base.getObject().getParent();
AddToParent(vg, base.getLeft(), base.getTop(), base.getWidth(), base.getHeight());
base.RemoveView();
BA.Log("out DesignerCreateView");
//set text properties
}
It logs the in DesignerCreateView and then also the in AddToParent but it does not log out AddToParent. Any idea what could cause this not to be working on ICS?