我有一个java maven库,我想在我的Android应用程序中使用它(
This
是图书馆吗
当我试着开始一门课,比如
ZoldWts api = new RestfulZoldWts("key");
我没有发现任何错误。
JAVAlang.NoSuchMethodError:没有直接方法(Ljava/util/Collection;)V类Lorg/apache/http/client/protocol/RequestDefaultHeaders;或者它的超类(声明'org.apache.http.client.protocol.RequestDefaultHeaders'出现在/system/framework/org.apache.http.legacy.boot.jar中)
我是如何将图书馆添加到我的成绩中的?
compile 'com.amihaiemil.web:zold-java-client:0.0.1'
然而,我得到了以下错误
发现多个文件具有独立于操作系统的路径“META-INF/DEPENDENCIES”
我把这个加到我的梯度上解决了这个问题
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
}
为了确保库没有损坏,我编写了一个单元测试并成功运行。不幸的是,仪器化测试没有。
我试着让proguard瘫痪
useProguard false
没用。
我还尝试在我的proguard规则中添加以下内容
-保持类org/apache/http/client/protocol/*{ *; }
还是不行。
我的gradle文件:
apply plugin: 'com.android.application'
android {
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
}
compileSdkVersion 28
defaultConfig {
applicationId "com.zold.ammar.zold_android"
minSdkVersion 26
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
// Zold Java
compile 'com.amihaiemil.web:zold-java-client:0.0.1'
}
我的测试代码(完全相同的代码在单元测试中工作,但在仪器化测试中不工作)
@Test
public void zoldinittest() {
ZoldWts api = new RestfulZoldWts("key");
assertNotNull(api);
}