Java Question Error On Running the Wrapped Library for USB Printer

Richard Goh

Active Member
Licensed User
Longtime User
I am trying to wrap a b4a library for a usb printer. I managed to connect and list the details. But hit into below error when running the code in the apps. Attached is the project and wrapped library as well as code to test. I need to solve this problem by today. Any help is highly appreciated.

Error occurred on line: 74 (Main)
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.hardware.usb.UsbDeviceConnection.claimInterface(android.hardware.usb.UsbInterface, boolean)' on a null object reference
at com.zj.usbsdk.UsbController.sendByte(UsbController.java:134)
at com.xfs.utils.USBPrinterWrapper.writeLine(USBPrinterWrapper.java:101)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.shell.Shell.runVoidMethod(Shell.java:748)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:343)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:247)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:134)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:157)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:153)
at anywheresoftware.b4a.objects.ViewWrapper$1.onClick(ViewWrapper.java:78)
at android.view.View.performClick(View.java:5714)
at android.widget.TextView.performClick(TextView.java:10926)
at android.view.View$PerformClick.run(View.java:22589)
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:7325)
at java.lang.reflect.Method.invoke(Native Method)


B4X:
Sub btnPrint_Click
    Dim usb1 As UsbSerial
    Dim usbDev As UsbDevice
    Dim manager As UsbManager   
    Dim devices() As UsbDevice   
       
    Dim astreams1 As AsyncStreams
   
    manager.Initialize   
    devices = manager.GetDevices   
   
    usb1.Open(9600)
    usbDev = devices(0)
   
    Dim uPrinter As USBPrinter
    uPrinter.Initialize("uPrint")
    uPrinter.Connect
[INDENT]Try
    uPrinter.writeLine("AAAA")   
Catch
End Try[/INDENT]
End Sub
 

Attachments

  • USBPrinterWrapper.zip
    17.6 KB · Views: 241
  • WrapperLib.zip
    14.3 KB · Views: 259

somed3v3loper

Well-Known Member
Licensed User
Longtime User
I don't know but have these points:
-I think you need to change your package to something else
- mHandler is not used in your wrapper
If I am wrong , someone should correct me please :)
 

somed3v3loper

Well-Known Member
Licensed User
Longtime User
Just realized you are trying to wrap an example .
I don't think you need the example java file .
Just copy code you need to your wrapper
 
Top