每当我尝试运行我的应用时,都会出现此错误:
Caused by: java.lang.NoSuchMethodError: No static method
domainprep(Ljava/lang/String;)Ljava/lang/String; in class Lorg/jxmpp/stringprep/XmppStringPrepUtil; or its super classes (declaration of 'org.jxmpp.stringprep.XmppStringPrepUtil' appears in /data/data/app.com.hideout.myapplication/files/instant-run/dex/slice-jxmpp-core-0.3.0_6be45a45890e0c107a4cb82dbe4a33060e3b5f11-classes.dex)
尝试在谷歌搜索,也导入了这些没有用的jar。
这是我的gradle文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "app.com.hideout.myapplication"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:23.4.0'
testCompile 'junit:junit:4.12'
compile files('libs/smack-tcp-4.2.0.jar')
compile files('libs/smack-android-extensions-4.1.0-beta1.jar')
}
这是我用来连接xmpp服务器的代码,这是openfire
private class MyLoginTask extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... params) {
// Create a connection to the jabber.org server.
XMPPTCPConnectionConfiguration config = null;
try {
config = XMPPTCPConnectionConfiguration.builder()
.setXmppDomain(SERVICE)
.setUsernameAndPassword(USERNAME,PASSWORD)
.setHost(HOST)
.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)
.setPort(PORT)
.setDebuggerEnabled(true) // to view what's happening in detail
.build();
} catch (XmppStringprepException e) {
Log.e("app",e.getMessage()+"");
}
AbstractXMPPConnection conn1 = new XMPPTCPConnection(config);
try {
conn1.connect();
if(conn1.isConnected()) {
Log.w("app", "conn done");
}
conn1.login();
if(conn1.isAuthenticated()) {
Log.w("app", "Auth done");
}
}
catch (Exception e) {
Log.w("app", e.toString());
}
return "";
}
提前致谢