java - Smack throws "NoClassDefFoundError: Failed resolution of: Lorg/jxmpp/util/XmppStringUtils" -


i got problem app in want create simple xmpp client connects server. got following problem when i'm starting app (compilation runs through without problems), app closes instantly.

   java.lang.noclassdeffounderror: failed resolution of: lorg/jxmpp/util/xmppstringutils;         @ org.jivesoftware.smack.provider.providermanager.getkey(providermanager.java:314)         @ org.jivesoftware.smack.provider.providermanager.addstreamfeatureprovider(providermanager.java:304)         @ org.jivesoftware.smack.provider.providermanager.addloader(providermanager.java:140)         @ org.jivesoftware.smack.initializer.urlinitializer.initialize(urlinitializer.java:54)         @ org.jivesoftware.smack.smackinitialization.loadsmackclass(smackinitialization.java:232)         @ org.jivesoftware.smack.smackinitialization.parseclassestoload(smackinitialization.java:193)         @ org.jivesoftware.smack.smackinitialization.processconfigfile(smackinitialization.java:163)         @ org.jivesoftware.smack.smackinitialization.processconfigfile(smackinitialization.java:148)         @ org.jivesoftware.smack.smackinitialization.<clinit>(smackinitialization.java:116)         @ org.jivesoftware.smack.smackconfiguration.getversion(smackconfiguration.java:96)         @ org.jivesoftware.smack.connectionconfiguration.<clinit>(connectionconfiguration.java:38)         @ org.reisacher.zapp.main.login(main.java:30)         @ org.reisacher.zapp.main.oncreate(main.java:73)         @ android.app.activity.performcreate(activity.java:5990)         @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1106)         @ android.app.activitythread.performlaunchactivity(activitythread.java:2278)         @ android.app.activitythread.handlelaunchactivity(activitythread.java:2390)         @ android.app.activitythread.access$800(activitythread.java:151)         @ android.app.activitythread$h.handlemessage(activitythread.java:1303)         @ android.os.handler.dispatchmessage(handler.java:102)         @ android.os.looper.loop(looper.java:135)         @ android.app.activitythread.main(activitythread.java:5257)         @ java.lang.reflect.method.invoke(native method)         @ java.lang.reflect.method.invoke(method.java:372)         @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:903)         @ com.android.internal.os.zygoteinit.main(zygoteinit.java:698)  caused by: java.lang.classnotfoundexception: didn't find class "org.jxmpp.util.xmppstringutils" on path: dexpathlist[[zip file "/data/app/org.reisacher.zapp-1/base.apk"],nativelibrarydirectories=[/vendor/lib, /system/lib]]         @ dalvik.system.basedexclassloader.findclass(basedexclassloader.java:56)         @ java.lang.classloader.loadclass(classloader.java:511)         @ java.lang.classloader.loadclass(classloader.java:469 @ org.jivesoftware.smack.provider.providermanager.getkey(providermanager.java:314) @ org.jivesoftware.smack.provider.providermanager.addstreamfeatureprovider(providermanager.java:304)             at org.jivesoftware.smack.provider.providermanager.addloader(providermanager.java:140)             at org.jivesoftware.smack.initializer.urlinitializer.initialize(urlinitializer.java:54)             at org.jivesoftware.smack.smackinitialization.loadsmackclass(smackinitialization.java:232)             at org.jivesoftware.smack.smackinitialization.parseclassestoload(smackinitialization.java:193)             at org.jivesoftware.smack.smackinitialization.processconfigfile(smackinitialization.java:163)             at org.jivesoftware.smack.smackinitialization.processconfigfile(smackinitialization.java:148)             at org.jivesoftware.smack.smackinitialization.<clinit>(smackinitialization.java:116)             at org.jivesoftware.smack.smackconfiguration.getversion(smackconfiguration.java:96)             at org.jivesoftware.smack.connectionconfiguration.<clinit>(connectionconfiguration.java:38)             at org.reisacher.zapp.main.login(main.java:30)             at org.reisacher.zapp.main.oncreate(main.java:73)             at android.app.activity.performcreate(activity.java:5990)             at android.app.instrumentation.callactivityoncreate(instrumentation.java:1106)             at android.app.activitythread.performlaunchactivity(activitythread.java:2278)             at android.app.activitythread.handlelaunchactivity(activitythread.java:2390)             at android.app.activitythread.access$800(activitythread.java:151)             at android.app.activitythread$h.handlemessage(activitythread.java:1303)             at android.os.handler.dispatchmessage(handler.java:102)             at android.os.looper.loop(looper.java:135)             at android.app.activitythread.main(activitythread.java:5257)             at java.lang.reflect.method.invoke(native method)             at java.lang.reflect.method.invoke(method.java:372)             at com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:903)             at com.android.internal.os.zygoteinit.main(zygoteinit.java:698) suppressed: java.lang.classnotfoundexception: org.jxmpp.util.xmppstringutils         @ java.lang.class.classforname(native method)         @ java.lang.bootclassloader.findclass(classloader.java:781)         @ java.lang.bootclassloader.loadclass(classloader.java:841)         @ java.lang.classloader.loadclass(classloader.java:504)         ... 27 more  caused by: java.lang.noclassdeffounderror: class not found using boot class loader; no stack available 

but somehow can't find related missing "xmppstringutils"

this code in line 30

public void login() throws xmppexception, ioexception, smackexception {     xmpptcpconnectionconfiguration config = xmpptcpconnectionconfiguration.builder()             .setservicename("reisacher.de")             .sethost("192.168.178.6")             .setport(5222)             .build();      abstractxmppconnection connection = new xmpptcpconnection(config);     connection.connect();     connection.login(username, password); } 

and these imports

import org.jivesoftware.smack.abstractxmppconnection; import org.jivesoftware.smack.smackexception; import org.jivesoftware.smack.xmppexception; import org.jivesoftware.smack.tcp.xmpptcpconnection; import org.jivesoftware.smack.tcp.xmpptcpconnectionconfiguration; 

plus build.gradle

// top-level build file can add configuration options common sub-projects/modules. apply plugin: 'jetty' buildscript {     repositories {         maven {             url 'https://oss.sonatype.org/content/repositories/snapshots'         }         mavencentral()     }     dependencies {         classpath 'com.android.tools.build:gradle:1.2.3'     } }  dependencies {     compile "org.igniterealtime.smack:smack-android:4.1.1"     compile "org.igniterealtime.smack:smack-tcp:4.1.1"     // optional features     compile "org.igniterealtime.smack:smack-android-extensions:4.1.1"     compile "org.igniterealtime.smack:smack-core:4.1.1" }  allprojects {     repositories {         jcenter()     } } 

thanks

from noclassdeffounderror's javadoc:

thrown if java virtual machine or classloader instance tries load in definition of class (as part of normal method call or part of creating new instance using new expression) , no definition of class found.

java uses dynamic linking, means symbols (class names, ...) linked when first used. mohit pointed out, appears missing jxmpp library, (transitive) dependency of smack. assume did add smack project putting libs/ folder. approach not recommended, miss trasitive dependency of smack, happened you. instead use build system able resolve dependencies maven or gradle. see also:


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -