Android Question help with library jar and java inline

kkkpe

Active Member
Licensed User
Longtime User
Erel Help me

To do a test with an external library .jar I wrote a class:

package com.example;
public class MyClass {
private String nome;

public void setNome(String nome) {
this.nome = nome;
}

public String getNome() {
return nome;
}
}

with Android Studio As Padre.jar

B4A:
#AdditionalJar: padre
Sub Activity_Create(FirstTime As Boolean)
Dim d As String
jo.InitializeStatic("com.example.MyClass")
d=jo.RunMethod("setNome",Array("test"))
End Sub

but when I fill out my returns this error:
Installing file.
** Activity (main) Pause, UserClosed = false **
PackageAdded: package:JHS.JO_IJC
** Activity (main) Create, isFirst = true **
Error occurred on line: 36 (Main)
java.lang.IllegalArgumentException: expected receiver of type com.example.MyClass, but got java.lang.Class<com.example.MyClass>
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at anywheresoftware.b4j.object.JavaObject.RunMethod(JavaObject.java:130)
at JHS.JO_IJC.main._activity_create(main.java:360)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:697)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:339)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:246)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:134)
at JHS.JO_IJC.main.afterFirstLayout(main.java:102)
at JHS.JO_IJC.main.access$000(main.java:17)
at JHS.JO_IJC.main$WaitForLayout.run(main.java:80)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5694)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
at dalvik.system.NativeStart.main(Native Method)
** Activity (main) Resume **
** Activity (main) Resume **
 

Roycefer

Well-Known Member
Licensed User
Longtime User
Don't use InitializeStatic. Initialize an instance of the class MyClass using
B4X:
jo.InitializeNewInstance("com.example.MyClass", Null)
 
Upvote 0

Roycefer

Well-Known Member
Licensed User
Longtime User
Also, it should be pointed out that your Java method "setNome" returns void but in your B4A JavaObject usage, you're assigning its return value to a String.
 
Upvote 0
Top