使用 android studio 时得到 java.lang.nosuchmethoderror 没有虚拟方法执行
getting java.lang.nosuchmethoderror no virtual method execute when use android studio
在 android studio
中将编译版本更改为 23 后,我现在 java.lang.nosuchmethoderror 没有虚拟方法执行错误
请检查我的 gradle 文件
应用插件:'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "my.test.app"
minSdkVersion 14
targetSdkVersion 14
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
}
}
repositories {
maven {
url 'https://zendesk.artifactoryonline.com/zendesk/repo/'
}
}
dependencies {
compile project(':gestureimageview')
compile 'com.android.support:support-v4:18.0.0'
compile files('libs/android-hipmob-2.9.8.jar')
compile files('libs/apache-mime4j-0.6.1.jar')
compile files('libs/HockeySDK-3.5.0.jar')
compile files('libs/httpclient-4.3.jar')
compile files('libs/httpcore-4.3.jar')
compile files('libs/libphonenumber-5.2v1.5.jar')
compile files('libs/NineOldAndroid-2.4.0.jar')
compile files('libs/org.apache.commons.io.jar')
compile files('libs/universal-image-loader-1.9.3.jar')
compile files('libs/httpmime-4.3.jar')
compile group: 'com.zopim.android', name: 'sdk', version: '1.1.0', changing: false
compile 'com.android.support:appcompat-v7:23.0.0'
}
有人可以帮忙吗?
编辑
我使用的版本是
- httpclient-4.3
- httpcore-4.3
- httpmime-4.3
完整的堆栈跟踪是
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:848)
Caused by: java.lang.NoSuchMethodError: org.apache.http.impl.client.DefaultHttpClient.execute
at
经过大量搜索,我发现
org.apache.http.impl.client.DefaultHttpClient.execute 方法在版本 22 中已弃用,并在版本 23 中完全删除
为了解决这个问题,我改用 HttpURLConnection
http://developer.android.com/reference/java/net/HttpURLConnection.html
在 android studio
中将编译版本更改为 23 后,我现在 java.lang.nosuchmethoderror 没有虚拟方法执行错误请检查我的 gradle 文件
应用插件:'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "my.test.app"
minSdkVersion 14
targetSdkVersion 14
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
}
}
repositories {
maven {
url 'https://zendesk.artifactoryonline.com/zendesk/repo/'
}
}
dependencies {
compile project(':gestureimageview')
compile 'com.android.support:support-v4:18.0.0'
compile files('libs/android-hipmob-2.9.8.jar')
compile files('libs/apache-mime4j-0.6.1.jar')
compile files('libs/HockeySDK-3.5.0.jar')
compile files('libs/httpclient-4.3.jar')
compile files('libs/httpcore-4.3.jar')
compile files('libs/libphonenumber-5.2v1.5.jar')
compile files('libs/NineOldAndroid-2.4.0.jar')
compile files('libs/org.apache.commons.io.jar')
compile files('libs/universal-image-loader-1.9.3.jar')
compile files('libs/httpmime-4.3.jar')
compile group: 'com.zopim.android', name: 'sdk', version: '1.1.0', changing: false
compile 'com.android.support:appcompat-v7:23.0.0'
}
有人可以帮忙吗?
编辑
我使用的版本是
- httpclient-4.3
- httpcore-4.3
- httpmime-4.3
完整的堆栈跟踪是
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:848)
Caused by: java.lang.NoSuchMethodError: org.apache.http.impl.client.DefaultHttpClient.execute
at
经过大量搜索,我发现
org.apache.http.impl.client.DefaultHttpClient.execute 方法在版本 22 中已弃用,并在版本 23 中完全删除
为了解决这个问题,我改用 HttpURLConnection
http://developer.android.com/reference/java/net/HttpURLConnection.html