我在我的Android应用程序中使用了jcifs-1.3.17.jar库。
以下一段代码在Android 1.6模拟器上运行良好,但在2.3和3.0上失败。
应用程序启动时,在2.3模拟器的logcat中获取以下警告。
05-03 10:41:43.105: E/dalvikvm(338): Could not find class 'jcifs.smb.NtlmPasswordAuthentication', referenced from method myPackage.getFile
在创建NtlmPasswordAuthentication对象时获得以下异常。
05-03 10:49:59.765: E/AndroidRuntime(338): java.lang.NoClassDefFoundError: jcifs.smb.NtlmPasswordAuthentication
任何人都可以告诉我,我缺少什么?
我的功能是
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;
}
}
答案 0 :(得分:3)
在项目中添加文件夹libs并复制所有jar文件。
按照这些说明进行操作
所以右键点击你的项目 - >创建一个名为 libs 的文件夹
并按照
中的此步骤操作 right click (on libs folder) -->import-->File System-->browse to select your jar file and hit finish and run you project.
之后
right click on the project --> Built Path-->java built path-->add jars select your jar file from your libs folder