错误:java.lang.NoClassDefFoundError:解析失败:Ljavax / xml / stream / XMLInputFactory;

时间:2016-03-06 15:09:04

标签: android android-studio compiler-errors apiary.io

我正在尝试使用带有Android Studio的REST api(Apiary)构建应用程序,但我不确定能做得好。

这是我的build.gradle文件:

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.1"

defaultConfig {
    minSdkVersion 11
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {  
testCompile 'junit:junit:4.12'
compile ('org.glassfish.jersey.containers:jersey-container-servlet:2.14'){
    exclude module: 'javax.inject'
}
compile 'org.glassfish.hk2.external:javax.inject:2.5.0-b03'
}

这是我的LoginActivity在lign“响应响应......”崩溃:

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;

import android.widget.AutoCompleteTextView;
import android.widget.EditText;
import android.widget.TextView;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

public class LoginActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    Client client = ClientBuilder.newClient();
    AutoCompleteTextView mEmailView = (AutoCompleteTextView) findViewById(R.id.email);
    EditText mPasswordView = (EditText) findViewById(R.id.password);
    TextView responses = (TextView) findViewById(R.id.textView);
    //String username = mEmailView.getText().toString();
    //String password = mPasswordView.getText().toString();
    Entity payload = Entity.json("{  'username': 'test@test.com',  'password': 'secret',  'client': 'client'}");
    Response response = client.target("https://api.***.io/login")
            .request(MediaType.APPLICATION_JSON_TYPE)
            .post(payload);

    if(response.getStatus()==200)
    {
        responses.setText("OK");
    }
    else
    {
        responses.setText("doesnt exist");
    }
}
}

但是当我运行应用程序时,我有这个错误:

FATAL EXCEPTION: main
Process: com.example.julie.myapplication, PID: 1253
java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/xml/stream/XMLInputFactory;
        at org.glassfish.jersey.message.internal.MessagingBinders$MessageBodyProviders.configure(MessagingBinders.java:142)
       .
       .
       .
        at org.glassfish.jersey.client.JerseyInvocation$Builder.post(JerseyInvocation.java:333)
        at com.example.julie.myapplication.LoginActivity.onCreate(LoginActivity.java:33)
       .
       . 
       .
 Caused by: java.lang.ClassNotFoundException: Didn't find class "javax.xml.stream.XMLInputFactory" on path: DexPathList[[zip file "/data/app/com.example.julie.myapplication-2/base.apk"],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
       .
       .
       .
Suppressed: java.lang.ClassNotFoundException: javax.xml.stream.XMLInputFactory
        at java.lang.Class.classForName(Native Method)
        at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
        at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
        ... 35 more
 Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

有人明白我做错了什么吗?在此先感谢您的帮助 !

0 个答案:

没有答案