I am trying to use JCIFS library in Xamarin with Java Bindings Library. I was able to implement in the project by ignoring some method, that causes some problem during transformation, in metadata.xml.
here is the content of metadata.xml :
<metadata>
<remove-node path="/api/package[@name='jcifs.util']" />
<remove-node path="/api/package[@name='jcifs.dcerpc.msrpc']" />
</metadata>
And I add the Java Binding library in Droid project :
And this is my code,knowing that when I tested it in Java it works fine:
Authentification.cs
try
{
String path = "smb://192.168.1.20/";
SmbFile sFile;
sFile = new SmbFile(path);
for (int i = 0; i < sFile.ListFiles().Length; i++)
{
Toast.MakeText(this,sFile.ListFiles()[i].Name,ToastLength.Short).Show();
}
}
catch (MalformedURLException e)
{
Android.Util.Log.Error("MalformedURLException ", e.Message);
}
catch (IOException e)
{
Android.Util.Log.Error("IOException ", e.Message);
}
And here the error that I have :
Thre> ad started:
Loaded assembly: System.Xml.dll [External] 05-01 16:17:59.432 E/SQLiteLog( 3498): (1) statement aborts at 2: [ROLLBACK] cannot rollback - no transaction is active 05-01 16:17:59.464 E/SQLiteLog( 3498): (1) statement aborts at 2: [ROLLBACK] cannot rollback - no transaction is active 05-01 16:17:59.560 E/SQLiteLog( 3498): (1) statement aborts at 2: [ROLLBACK] cannot rollback - no transaction is active 05-01 16:17:59.596 E/SQLiteLog( 3498): (1) statement aborts at 2: [ROLLBACK] cannot rollback - no transaction is active 05-01 16:17:59.616 W/dalvikvm( 3498): Exception Landroid/os/NetworkOnMainThreadException; thrown while initializing Ljcifs/netbios/NbtAddress; 05-01 16:17:59.620 W/dalvikvm( 3498): Exception Ljava/lang/ExceptionInInitializerError; thrown while initializing Ljcifs/UniAddress; Unhandled Exception:
Java.Lang.ExceptionInInitializerError: 05-01 16:18:10.863 I/MonoDroid( 3498): UNHANDLED EXCEPTION: Java.Lang.ExceptionInInitializerError: Exception of type 'Java.Lang.ExceptionInInitializerError' was thrown. 05-01 16:18:10.863 I/MonoDroid( 3498): at Android.Runtime.JNIEnv.CallObjectMethod (intptr,intptr) [0x00023] in /Users/builder/data/lanes/monodroid-lion-monodroid-4.6.6-branch/6d7480e9/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:133 05-01 16:18:10.863 I/MonoDroid( 3498): at Jcifs.Smb.SmbFile.ListFiles () 05-01 16:18:10.863 I/MonoDroid( 3498): at SymaMobile.Droid.Authentification.OnCreate (Android.OS.Bundle) [0x00721] in e:\PFE\VS2012\SymaMobile\SymaMobile.Droid\Activities\Authentification.cs:228 05-01 16:18:10.863 I/MonoDroid( 3498): at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (intptr,intptr,intptr) [0x00010] in /Users/builder/data/lanes/monodroid-lion-monodroid-4.6.6-branch/6d7480e9/source/monodroid/src/Mono.Android/platforms/android-14/src/generated/Android.App.Activity.cs:1859 05-01 16:18:10.863 I/MonoDroid( 3498): at (wrapper dynamic-method) object.e1766a79- ef52-47a9-a626-e2bd3525d7ca (intptr,intptr,intptr) 05-01 16:18:10.863 I/MonoDroid( 3498): 05-01 16:18:10.863 I/MonoDroid( 3498): --- End of managed exception stack trace --- 05-01 16:18:10.863 I/MonoDroid( 3498): java.lang.ExceptionInInitializerError 05-01 16:18:10.863 I/MonoDroid( 3498): at jcifs.smb.SmbFile.getFirstAddress(SmbFile.java:809) 05-01 16:18:10.863 I/MonoDroid( 3498): at jcifs.smb.SmbFile.getAddress(SmbFile.java:776) 05-01 16:18:10.863 I/MonoDroid( 3498): at jcifs.smb.SmbFile.getType(SmbFile.java:1242) 05-01 16:18:10.863 I/MonoDroid( 3498): at jcifs.smb.SmbFile.doEnum(SmbFile.java:1678) 05-01 16:18:10.863 I/MonoDroid( 3498): at jcifs.smb.SmbFile.listFiles(SmbFile.java:1660) 05-01 16:18:10.863 I/MonoDroid( 3498): at jcifs.smb.SmbFile.listFiles(SmbFile.java:1593) 05-01 16:18:10.863 I/MonoDroid( 3498): at symamobile.droid.Authentification.n_onCreate(Native Method) 05-01 16:18:10.863 I/MonoDroid( 3498): at symamobile.droid.Authentification.onCreate(Authentification.java:40) 05-01 16:18:10.863 I/MonoDroid( 3498): at android.app.Activity.performCreate(Activity.java:5008) 05-01 16:18:10.863 I/MonoDroid( 3498): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 05-01 16:18:10.863 I/MonoDroid( 3498): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 05-01 16:18:10.863 I/MonoDroid( 3498): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 05-01 16:18:10.863 I/MonoDroid( 3498): at android.app.ActivityThread.access$600(ActivityThread.java:130) 05-01 16:18:10.863 I/MonoDroid( 3498): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 05-01 16:18:10.863 I/MonoDroid( 3498): at android.os.Handler.dispatchMessage(Handler.java:99) 05-01 16:18:10.863 I/MonoDroid( 3498): at android.os.Looper.loop(Looper.java:137) 05-01 16:18:10.863 I/MonoDroid( 3498): at android.app.ActivityThread.main(ActivityThread.java:4745) 05-01 16:18:10.863 I/MonoDroid( 3498): at java.lang.reflect.Method.invokeNative(Native Method) 05-01 16:18:10.863 I/MonoDroid( 3498): at java.lang.reflect.Method.invoke(Method.java:511) 05-01 16:18:10.863 I/MonoDroid( 3498): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 05-01 16:18:10.863 I/MonoDroid( 3498): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 05-01 16:18:10.863 I/MonoDroid( 3498): at dalvik.system.NativeStart.main(Native Method) 05-01 16:18:10.863 I/MonoDroid( 3498): Caused by: java.lang.ExceptionInInitializerError 05-01 16:18:10.863 I/MonoDroid( 3498): at jcifs.UniAddress.(UniAddress.java:62) 05-01 16:18:10.863 I/MonoDroid( 3498): ... 22 more 05-01 16:18:10.863 I/MonoDroid( 3498): Caused by: android.os.NetworkOnMainThreadException 05-01 16:18:10.863 I/MonoDroid( 3498): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117) 05-01 16:18:10.863 I/MonoDroid( 3498): at java.net.InetAddress.lookupHostByName(InetAddress.java:385) 05-01 16:18:10.863 I/MonoDroid( 3498): at java.net.InetAddress.getLocalHost(InetAddress.java:365) 05-01 16:18:10.863 I/MonoDroid( 3498): at jcifs.netbios.NbtAddress.(NbtAddress.java:187) 05-01 16:18:10.863 I/MonoDroid( 3498): ... 23 more 05-01 16:18:10.891 W/dalvikvm( 3498): JNI WARNING: JNI method called with exception pending 05-01 16:18:10.891 W/dalvikvm( 3498): in Lsymamobile/droid/Authentification;.n_onCreate:(Landroid/os/Bundle;)V (CallObjectMethod) 05-01 16:18:10.895 W/dalvikvm( 3498): Pending exception is: 05-01 16:18:10.895 I/dalvikvm( 3498): java.lang.ExceptionInInitializerError: 05-01 16:18:10.895 I/dalvikvm( 3498): (raw stack trace not found) 05-01 16:18:10.895 I/dalvikvm( 3498): Caused by: 05-01 16:18:10.895 I/dalvikvm( 3498): java.lang.ExceptionInInitializerError: 05-01 16:18:10.895 I/dalvikvm( 3498): (raw stack trace not found) 05-01 16:18:10.895 I/dalvikvm( 3498): Caused by: 05-01 16:18:10.895 I/dalvikvm( 3498): android.os.NetworkOnMainThreadException: 05-01 16:18:10.895 I/dalvikvm( 3498): (raw stack trace not found) 05-01 16:18:10.895 I/dalvikvm( 3498): "main" prio=5 tid=1 NATIVE 05-01 16:18:10.895 I/dalvikvm( 3498): | group="main" sCount=0 dsCount=0 obj=0xa62cb4b0 self=0xb82aa500 05-01 16:18:10.895 I/dalvikvm( 3498): | sysTid=3498 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=-1216711616 05-01 16:18:10.899 I/dalvikvm( 3498): | schedstat=( 1406957714 262513854 493 ) utm=69 stm=70 core=0 05-01 16:18:10.927 I/dalvikvm( 3498): #00 pc 0008f4ad /system/lib/libdvm.so 05-01 16:18:10.927 I/dalvikvm( 3498): #01 pc 00073efa /system/lib/libdvm.so 05-01 16:18:10.931 I/dalvikvm( 3498): #02 pc 00074024 /system/lib/libdvm.so 05-01 16:18:10.931 I/dalvikvm( 3498): #03 pc 0003879a /system/lib/libdvm.so 05-01 16:18:10.931 I/dalvikvm( 3498): #04 pc 00049882 /system/lib/libdvm.so 05-01 16:18:10.931 I/dalvikvm( 3498): #05 pc 0000bdf6 05-01 16:18:10.931 I/dalvikvm( 3498): at symamobile.droid.Authentification.n_onCreate(Native Method) 05-01 16:18:10.935 I/dalvikvm( 3498): at symamobile.droid.Authentification.onCreate(Authentification.java:40) 05-01 16:18:10.935 I/dalvikvm( 3498): at android.app.Activity.performCreate(Activity.java:5008) 05-01 16:18:10.935 I/dalvikvm( 3498): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 05-01 16:18:10.935 I/dalvikvm( 3498): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 05-01 16:18:10.935 I/dalvikvm( 3498): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 05-01 16:18:10.939 I/dalvikvm( 3498): at android.app.ActivityThread.access$600(ActivityThread.java:130) 05-01 16:18:10.939 I/dalvikvm( 3498): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 05-01 16:18:10.939 I/dalvikvm( 3498): at android.os.Handler.dispatchMessage(Handler.java:99) 05-01 16:18:10.939 I/dalvikvm( 3498): at android.os.Looper.loop(Looper.java:137) 05-01 16:18:10.939 I/dalvikvm( 3498): at android.app.ActivityThread.main(ActivityThread.java:4745) 05-01 16:18:10.939 I/dalvikvm( 3498): at java.lang.reflect.Method.invokeNative(Native Method) 05-01 16:18:10.939 I/dalvikvm( 3498): at java.lang.reflect.Method.invoke(Method.java:511) 05-01 16:18:10.939 I/dalvikvm( 3498): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 05-01 16:18:10.939 I/dalvikvm( 3498): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 05-01 16:18:10.939 I/dalvikvm( 3498): at dalvik.system.NativeStart.main(Native Method) 05-01 16:18:10.939 I/dalvikvm( 3498): 05-01 16:18:10.939 E/dalvikvm( 3498): VM aborting 05-01 16:18:10.939 I/mono ( 3498): Stacktrace: 05-01 16:18:10.939 I/mono ( 3498): 05-01 16:18:10.943 I/mono ( 3498): at (wrapper managed-to-native) object.wrapper_native_0xb6782840 (intptr,intptr,intptr) 05-01 16:18:10.943 I/mono ( 3498): at Android.Runtime.JNIEnv.CallObjectMethod (intptr,intptr) [0x00000] in /Users/builder/data/lanes/monodroid-lion-monodroid-4.6.6-branch/6d7480e9/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:129 05-01 16:18:10.943 I/mono ( 3498): at Java.Lang.Throwable.get_Message () [0x0003e] in /Users/builder/data/lanes/monodroid-lion-monodroid-4.6.6-branch/6d7480e9/source/monodroid/src/Mono.Android/platforms/android-14/src/generated/Java.Lang.Throwable.cs:195 05-01 16:18:10.943 I/mono ( 3498): at (wrapper runtime-invoke) .runtime_invoke_object__this__ (object,intptr,intptr,intptr) 05-01 16:18:10.943 I/mono ( 3498): at (wrapper dynamic-method) object.e1766a79-ef52-47a9-a626-e2bd3525d7ca (intptr,intptr,intptr) 05-01 16:18:10.943 I/mono ( 3498): at (wrapper native-to-managed) object.e1766a79-ef52-47a9-a626-e2bd3525d7ca (intptr,intptr,intptr) Unhandled Exception:
Java.Lang.ExceptionInInitializerError: 05-01 16:18:13.019 E/mono ( 3498): 05-01 16:18:13.019 E/mono ( 3498): Unhandled Exception: 05-01 16:18:13.019 E/mono ( 3498): Java.Lang.ExceptionInInitializerError: Exception of type 'Java.Lang.ExceptionInInitializerError' was thrown. 05-01 16:18:13.019 E/mono ( 3498): at Android.Runtime.JNIEnv.CallObjectMethod (intptr,intptr) [0x00023] in /Users/builder/data/lanes/monodroid-lion-monodroid-4.6.6-branch/6d7480e9/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:133 The program 'Mono' has exited with code 0 (0x0). 05-01 16:18:13.019 E/mono ( 3498): at Jcifs.Smb.SmbFile.ListFiles () 05-01 16:18:13.019 E/mono ( 3498): at SymaMobile.Droid.Authentification.OnCreate (Android.OS.Bundle) [0x00721] in e:\PFE\VS2012\SymaMobile\SymaMobile.Droid\Activities\Authentification.cs:228
thanks,