1

이 충돌/버그에는 많은 의문점이 있지만 모두 이클립스와 관련이 있거나 나를 위해 작동하지 않습니다. 나는 다음과 같은 종속성 프로젝트가SoapObject에서 NoClassDefFoundError 예외를 throw하는 Android ksoap2 라이브러리

repositories { 
    maven { 
     url 'https://oss.sonatype.org/content/repositories/snapshots' 
    } 
    maven { url 'https://maven.fabric.io/public' } 
    maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases' } 
} 

dependencies { 
    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
     transitive = true; 
    } 
    compile('com.squareup.retrofit2:retrofit:2.0.0') { 
     //exclude web sockets module from okhttp 
     exclude module: 'okhttp-ws' 
     exclude module: 'okhttp' 
    } 
    configurations { 
     compile.exclude group: 'org.json', module: 'json' 
    } 
    compile files('libs/smack-core-4.1.7.jar') 
    compile 'com.android.support:cardview-v7:24.2.1' 
    compile 'com.android.support:recyclerview-v7:24.2.1' 
    compile 'com.android.support:design:24.2.1' 
    compile 'com.android.support:support-v4:24.2.1' 
    compile 'com.android.support:customtabs:24.2.1' 
    compile 'com.google.guava:guava:18.0' 
    compile 'com.github.amlcurran.showcaseview:library:5.0.0' 
    compile 'com.koushikdutta.async:androidasync:2.1.4' 
    compile 'com.nhaarman.listviewanimations:lib-core:3.1.0' 
    compile 'com.nineoldandroids:library:2.4.0' 
    compile 'com.squareup.okhttp3:okhttp:3.2.0' 
    compile 'com.squareup.okhttp3:logging-interceptor:3.2.0' 
    compile 'com.squareup.retrofit2:converter-gson:2.0.0' 
    compile 'xpp3:xpp3:1.1.4c' 
    compile 'org.jxmpp:jxmpp-core:0.4.2' 
    compile 'org.igniterealtime.smack:smack-android-extensions:4.1.7' 
    compile 'org.igniterealtime.smack:smack-tcp:4.1.7' 
    compile 'io.realm:android-adapters:1.3.0' 
    compile 'com.orhanobut:logger:1.15' 
    compile 'com.github.clans:fab:1.6.4' 
    compile 'com.wang.avi:library:2.1.3' 
    compile 'org.jsoup:jsoup:1.9.2' 
    compile 'com.github.bumptech.glide:glide:3.7.0' 
    **compile 'com.google.code.ksoap2-android:ksoap2-android:3.6.1'** 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
} 

configurations { 
    compile.exclude module: 'smack-core' 
    compile.exclude module: 'gson' 
    all*.exclude group: 'xpp3', module: 'xpp3' 
} 

프로젝트 Gradle을 :

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath "io.realm:realm-gradle-plugin:1.2.0" 
     classpath 'com.android.tools.build:gradle:2.2.0' 
     classpath 'com.google.gms:google-services:3.0.0' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

내 프로젝트 작업이었다 아무 문제가 없었다하지만 2.2 안드로이드 스튜디오를 업데이트 한 후이 충돌 사전 롤리팝에서만 발생 기기 : Android Studio 업데이트로 인한 것일 수 있습니다. 이 충돌한다

Caused by: java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject 
at com.webgreeter.livechat.networkcalls.SoapWebServices.checkAndLogin(SoapWebServices.java:256) 
at com.webgreeter.livechat.ui.LoginAsyncTask.LoginProcess(LoginAsyncTask.java:84) 
at com.webgreeter.livechat.ui.LoginAsyncTask.doInBackground(LoginAsyncTask.java:39) 
at com.webgreeter.livechat.ui.LoginAsyncTask.doInBackground(LoginAsyncTask.java:21) 
at android.os.AsyncTask$2.call(AsyncTask.java:288) 

실제 코드는 다음과 같습니다

String METHOD_NAME = "CheckandLogin"; 
SoapObject so = new SoapObject(NAMESPACE, METHOD_NAME); 
so.addProperty("username", operator.getName()); 
so.addProperty("password", operator.getPassword()); 
so.addProperty("licenseKey", operator.getLicenseKey()); 
+0

jar 파일을 추가하려고 했습니까? –

+0

네,하지만 같은 문제입니다. – penguin

답변

2

시간을 보내고 코드를 역 추적 한 후, 나는 마침내 버그의 원인을 발견했다. 의존성 문제 였고 의존성의 충돌로 인해 발생했습니다. 메시지, 로그 또는 오류가이 방향을 가리 키지 않았습니다. 글라이드를 제거하고 문제를 해결했습니다. 이제 피카소를 사용하고 있습니다.

compile 'com.github.bumptech.glide:glide:3.7.0' 
1

이 시도 :

 String username = "your username"; 
    PropertyInfo usernameProp = new PropertyInfo(); 
    usernameProp.setName("username"); 
    usernameProp.setValue(username); 
    usernameProp.setType(String.class); 
    so.addProperty(usernameProp); 
+0

PropertyInfo는 SoapObject를 대체하지 않습니다. 전체 예제를 공유 할 수 있습니까 – penguin

+0

이 링크에서 내 답변을 볼 수 있습니다. http://stackoverflow.com/questions/39850481/what-is-the-code-in-android-studio/39851699#39851699 –

+0

이 줄 SoapObject 요청 = 새 SoapObject (네임 스페이스, methodName); PropertyInfo는 효과가 없다는 것을 의미합니다. – penguin