私はこのAsyncTaskを使用してサーバをftpに画像をアップロードしようとしている:java.lang.NoClassDefFoundErrorが:org.apache.commons.net.ftp.FTPClient
import android.content.Context;
import android.os.AsyncTask;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import java.io.FileInputStream;
public class my_ftp_uploader extends AsyncTask<String, Void, String> {
public String file_name;
private Context context;
public FTPClient mFTPClient = null;
public my_ftp_uploader(Context context) {
this.context = context;
}
protected void onPreExecute() {
}
@Override
protected String doInBackground(String... arg0) {
String filesToUploadPath = arg0[0];
file_name = arg0[1];
try {
mFTPClient = new FTPClient();
mFTPClient.connect("my_domain", 21);
if (FTPReply.isPositiveCompletion(mFTPClient.getReplyCode())) {
boolean status = mFTPClient.login("My_Domain", "My_password");
mFTPClient.setFileType(FTP.BINARY_FILE_TYPE);
mFTPClient.enterLocalPassiveMode();
try {
FileInputStream srcFileStream = new FileInputStream(filesToUploadPath);
try {
mFTPClient.changeWorkingDirectory("myServer_path");
status = mFTPClient.storeFile(file_name + ".jpg", srcFileStream);
try {
mFTPClient.logout();
mFTPClient.disconnect();
} catch (Exception e) {
}
} catch(Exception e) {
}
srcFileStream.close();
} catch (Exception e) {
}
}
} catch(Exception e) {
}
return "done";
}
@Override
protected void onPostExecute(String result) {
}
}
しかし、私は、トピックエラーが発生します。
apply plugin: 'com.android.application'
android {
configurations.all {
resolutionStrategy {
force 'com.android.support:support-v4:23.+'
force 'com.android.support:appcompat-v7:23.+'
force 'com.android.support:recyclerview-v7:23.+'
}
}
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "my_app_id"
minSdkVersion 15
targetSdkVersion 15
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.nononsenseapps:filepicker:3.0.0'
compile 'com.google.android.gms:play-services:8.4.0'
compile 'com.squareup.okhttp3:okhttp:3.4.1'
compile 'com.daimajia.swipelayout:library:[email protected]'
compile 'net.gotev:uploadservice:3.0'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'net.gotev:uploadservice-ftp:3.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
}
repositories {
jcenter()
}
論理ポイントエラーの原因として、この下の行::ここに私のGradleである
mFTPClient = new FTPClient();
P.Sは、このAsyncTaskは前にうまくいきました。しかし、突然このエラーを伝える作業を停止します。私は何か他のものと矛盾する何かをしたと思います! 問題は、私がこの部分を終えてから、私のアプリで多くのことをして、どの人がそれを引き起こすのかわからないということです! 私は似たような話題をしましたが、助けにはなりませんでした。 ヒントがあります。 「コモンズ:Apacheのコモンズを作るために
に含ま「ネット」、名前:「コモンズネット」、バージョン:「2.0」?あなたのプロジェクトに含まれているApacheのコモンズを作成するには – Yazan
@ Yazan Wow ..それです。あなたは私の一日を救った。それを答えさせてください。 –