NoClassDefFound exception while using jcifs library on android 2.3

android, java, jcifs

Solution

Add a folder libs in your project and copy all your jar file in that.

follow these instructions

so right click on your project -->create a folder with name libs

and follow this step in

 right click (on libs folder) -->import-->File System-->browse to select your jar file and hit finish and run you project.

after that

 right click on the project --> Built Path-->java built path-->add jars select your jar file from your libs folder

Problem

I am using jcifs-1.3.17.jar library in my android application. Following piece of code works well on android 1.6 simulator but fails on 2.3 and 3.0. Get following warning in logcat of 2.3 simulator when application starts. ``` 05-03 10:41:43.105: E/dalvikvm(338): Could not find class 'jcifs.smb.NtlmPasswordAuthentication', referenced from method myPackage.getFile ``` And get following exception while creating NtlmPasswordAuthentication object. ``` 05-03 10:49:59.765: E/AndroidRuntime(338): java.lang.NoClassDefFoundError: jcifs.smb.NtlmPasswordAuthentication ``` Can anybody tell, what I am missing? My function is ``` public boolean getFile(String url) { try { String name="server1";//my windows username String password="password1";//my windows password SmbFile dir=null; url = url.toLowerCase(); if (!url.startsWith("smb://") ) url = "smb://" + url; SmbFile file = null; try { NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null, name, password); file = new SmbFile(url, auth); SmbFileInputStream in = new SmbFileInputStream( file ); File gpxfile = null; File root = Environment.getExternalStorageDirectory(); gpxfile = new File(root, file.getName()); gpxfile.delete(); gpxfile.createNewFile(); FileOutputStream out = new FileOutputStream(gpxfile); long t0 = System.currentTimeMillis(); byte[] b = new byte[8192]; int n, tot = 0; long t1 = t0; while(( n = in.read( b )) > 0 ) { out.write( b, 0, n ); tot += n; } } catch (Exception e1) { } return true; } catch (Exception e) { return false; } } ```

Original source