有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java应用程序在截击StringRequest时不断崩溃

我正在尝试从服务器获取响应。我的服务器代码运行良好,URL也正确,但当我试图在StringRequest中获得响应时,应用程序不断崩溃。我就是找不到它为什么会崩溃

public void getData(View view) {

        Log.i(TAG,"Button pressed in");
        String value = sid.getText().toString().trim();

        if (value.equals("")) {
            Toast.makeText(this, "Please Enter Data Value", Toast.LENGTH_LONG).show();
            return;
        }


        String url = "https://ahmedsomething.000webhostapp.com/newpage.php";

        StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Toast.makeText(MainActivity.this,"This should be respone",Toast.LENGTH_LONG).show();
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
            }
        }) {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String,String> param = new HashMap<>();
                param.put("id",value);
                return param;
            }
        };
        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);

enter image description here

文本错误

2021-02-08 15:17:03.189 11468-11524/com.example.localserverretreive E/AndroidRuntime: FATAL EXCEPTION: Thread-6
    Process: com.example.localserverretreive, PID: 11468
    java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion;
        at com.安卓.volley.toolbox.HurlStack.performRequest(HurlStack.java:112)
        at com.安卓.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:97)
        at com.安卓.volley.NetworkDispatcher.run(NetworkDispatcher.java:124)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.http.ProtocolVersion" on path: DexPathList[[zip file "/data/app/~~QO6m0jumVWPRyhIym0uICw==/com.example.localserverretreive-OOIRqtT83AMz0fGOyrefmg==/base.apk"],nativeLibraryDirectories=[/data/app/~~QO6m0jumVWPRyhIym0uICw==/com.example.localserverretreive-OOIRqtT83AMz0fGOyrefmg==/lib/x86, /system/lib, /system_ext/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at com.安卓.volley.toolbox.HurlStack.performRequest(HurlStack.java:112) 
        at com.安卓.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:97) 
        at com.安卓.volley.NetworkDispatcher.run(NetworkDispatcher.java:124)

共 (1) 个答案

  1. # 1 楼答案

    添加到您的清单中:

    <uses-library
          android:name="org.apache.http.legacy"
          android:required="false" />
    

    为什么??谷歌曾经说过,如果你使用的是com。谷歌。安卓gms:play services maps:16.0.0或更低版本,并且您的应用程序目标为API级别28或更高版本,您必须在清单中包含代码

    最终结果应如下所示:

    <application  
        android:icon="@drawable/ic_launcher"  
        android:label="@string/app_name"  
        android:theme="@style/AppTheme" >  
    <uses-library
          android:name="org.apache.http.legacy"
          android:required="false" />
        <activity  
            android:name=".MainActivity"  
            android:label="@string/title_activity_main" >  
            <intent-filter>  
                <action android:name="android.intent.action.MAIN" />  
      
                <category android:name="android.intent.category.LAUNCHER" />  
            </intent-filter>  
        </activity>  
    </application> 
    

    希望能有帮助

    再见