Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Rally Rest Api Android应用程序即使在导入所需JAR后也找不到类_Java_Android_Http_Android Studio_Rally - Fatal编程技术网

Java Rally Rest Api Android应用程序即使在导入所需JAR后也找不到类

Java Rally Rest Api Android应用程序即使在导入所需JAR后也找不到类,java,android,http,android-studio,rally,Java,Android,Http,Android Studio,Rally,我正在尝试构建一个rally Android应用程序。我已经添加了JAR。 1.commons-codec-1.6.jar 2.gson-2.2.4.jar 3.httpclient-4.2.5.jar 4.org.apache.commons.logging-1.1.1.jar 5.httpcore-4.2.4.jar My mainActivity.java import android.support.v7.app.AppCompatActivity; import android.os.

我正在尝试构建一个rally Android应用程序。我已经添加了JAR。 1.commons-codec-1.6.jar 2.gson-2.2.4.jar 3.httpclient-4.2.5.jar 4.org.apache.commons.logging-1.1.1.jar 5.httpcore-4.2.4.jar

My mainActivity.java

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import com.rallydev.rest.RallyRestApi;
import com.rallydev.rest.request.QueryRequest;
import com.rallydev.rest.response.QueryResponse;

import org.apache.http.HttpHost;
import org.apache.http.client.utils.URIUtils;



    public class MainActivity extends AppCompatActivity
{
    String host = "https://rally1.rallydev.com";
String applicationName = "Android-Rally";
RallyRestApi restApi;
Button buttonlogin;
EditText etemail,etpass;
QueryRequest qtestset;
QueryResponse response;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    etemail=(EditText) findViewById(R.id.etemail);
    etpass=(EditText) findViewById(R.id.etpassword);
    buttonlogin=(Button) findViewById(R.id.btnlogin);
    buttonlogin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v)
        {
            if(etemail.equals("") && etpass.equals(""))
            {
                Toast.makeText(getApplicationContext(),"Enter your Rally Credentials",Toast.LENGTH_LONG).show();
            }
            else
            {
                try
                {
                    getRally();
                }
                catch (URISyntaxException e)
                {
                    e.printStackTrace();
                }
                qtestset = new QueryRequest("Defects");
                qtestset.setLimit(1);
                try
                {
                    response = restApi.query(qtestset);
                    if(!response.wasSuccessful())
                    {
                        Toast.makeText(getApplicationContext(),"Login Un-Successful",Toast.LENGTH_LONG).show();


                    }
                    else{
                        Toast.makeText(getApplicationContext(),"Login Successful",Toast.LENGTH_LONG).show();
                    }
                }
                catch (IOException e)
                {
                    e.printStackTrace();
                }



            }


        }
    });

}

public RallyRestApi getRally() throws URISyntaxException {
    String password = etemail.getText().toString();
    String email=etpass.getText().toString();
    restApi = new RallyRestApi(new URI(host), email,password);
    restApi.setApplicationName(applicationName);
    return restApi;
}
}
我的错误日志

04-18 14:07:16.299 11364-11364/com.example.apetkar.rally_poc D/AndroidRuntime:关闭虚拟机 04-18 14:07:16.299 11364-11364/com.example.apetkar.rally_poc E/AndroidRuntime:致命异常:main 流程:com.example.apetkar.rally_poc,PID:11364 java.lang.NoSuchMethodError:没有静态方法extractHost(Ljava/net/URI;)Lorg/apache/http/HttpHost;在Lorg/apache/http/client/utils/URIUtils类中;或者它的超类(org.apache.http.client.utils.URIUtils的声明出现在/system/framework/org.apache.http.legacy.boot.jar中) 位于org.apache.http.impl.client.DecompressingHttpClient.getHttpHost(DecompressingHttpClient.java:113) 位于org.apache.http.impl.client.DecompressingHttpClient.execute(DecompressingHttpClient.java:108) 位于com.rallydev.rest.client.HttpClient.executeRequest(HttpClient.java:157) 位于com.rallydev.rest.client.HttpClient.doRequest(HttpClient.java:145) 在com.rallydev.rest.client.BasicAuthClient.doRequest(BasicAuthClient.java:56) 位于com.rallydev.rest.client.HttpClient.doGet(HttpClient.java:221) 位于com.rallydev.rest.RallyRestApi.query(RallyRestApi.java:172) 在com.example.apetkar.rally\u poc.MainActivity$1.onClick(MainActivity.java:64)上 在android.view.view.performClick上(view.java:5198) 在android.view.view$PerformClick.run(view.java:21147) 位于android.os.Handler.handleCallback(Handler.java:739) 位于android.os.Handler.dispatchMessage(Handler.java:95) 位于android.os.Looper.loop(Looper.java:148) 位于android.app.ActivityThread.main(ActivityThread.java:5417) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:726) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)


有人能帮上忙吗..已经坚持了好几天了..谢谢

安卓是否运行一些特殊的移动版java?似乎4.2 http组件可能不兼容。我还没有机会深入研究它,但我想知道是否有一套与android环境兼容的新组件?您可以尝试将RallyRestToolkitForJava repo分叉,并在本地更新依赖项,看看是否可以让它运行…

与包含的Apache HTTP JAR和本机Android使用的HTTP JAR存在类冲突。我绕开了Rally项目,用OKHttp替换ApacheHTTP以消除冲突。我在github中的fork中做了更改:

我克服了它。Android不支持我添加的HTTP客户端jar。Android使用了不同的依赖项。我将RestAPI类中的导入更改为Android中添加的导入。感谢您的帮助。可以了!您使用的是受支持的哪个版本的HttpClient?可能是时候更新deps了…HttpClient-4.4.1.1.jar包含了文档中提供的客户端和核心中所需的所有文件。我已经为android配置了它。如果您需要,我可以将它发送给您查看。这对您来说很容易。我也不明白为什么RallyRestApi的方法电子邮件密码是不推荐..我的意思是对于android或任何移动开发,一个将被广泛使用,而不是API键,这是一个很好的观点。我想在我们做出这个决定时,我们从未预料到会有多少手机使用。在新版本中可能值得不提。如果你有机会和我分享你的代码,那就太好了!我用ApacheHTTP客户端4.1.1.1.jar实现了它。这个jar的目标是android版本。我已经看过你的代码了。无论如何,谢谢