如何解决我在使用 Volley 库使用 api 从 json 获取数据时遇到 AuthfailureError 请告诉我解决它的方法
I am getting AuthfailureError on using Volley library to fetch data from json using api and data is not displayed in the app and i am using recycleView to use that pls tell me the way to solve it. using newsapi.
这是我在 logcat 中得到的信息
04-05 19:06:54.892 30168-30168/? I/art: 后期启用 -Xcheck:jni
04-05 19:06:54.957 30168-30168/? D/TidaProvider:TidaProvider()
04-05 19:06:54.966 30168-30168/? W/ReflectionUtils: java.lang.NoSuchMethodException: android.os.MessageQueue#enableMonitor()#bestmatch
在 miui.util.ReflectionUtils.findMethodBestMatch(ReflectionUtils.java:338)
在 miui.util.ReflectionUtils.findMethodBestMatch(ReflectionUtils.java:375)
在 miui.util.ReflectionUtils.callMethod(ReflectionUtils.java:800)
在 miui.util.ReflectionUtils.tryCallMethod(ReflectionUtils.java:818)
在 android.os.BaseLooper.enableMonitor(BaseLooper.java:47)
在 android.os.Looper.prepareMainLooper(Looper.java:111)
在 android.app.ActivityThread.main(ActivityThread.java:5584)
在 java.lang.reflect.Method.invoke(Native Method)
在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:774)
在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:652)
04-05 19:06:55.034 30168-30168/com.example.inshorts W/ResourceType:获取资源编号 0x00000000 的名称时没有包标识符
04-05 19:06:55.059 30168-30168/com.example.inshorts W/System:ClassLoader 引用了未知路径:/data/app/com.example.inshorts-1/lib/arm64
04-05 19:06:55.284 30168-30168/com.example.inshorts W/ResourceType:获取资源编号 0x00000000 的名称时没有包标识符
04-05 19:06:55.312 30168-30168/com.example.inshorts W/art:在 Android 4.1 之前,方法 android.graphics.PorterDuffColorFilter androidx.vectordrawable.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter androidx.vectordrawable.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter) .content.res.ColorStateList,android.graphics.PorterDuff$Mode) 会错误地覆盖 android.graphics.drawable.Drawable 中的 package-private 方法
04-05 19:06:55.356 30168-30168/com.example.inshorts D/AccessibilityManager:当前包=com.example.inshorts,辅助功能管理器mIsFinalEnabled=false,mOptimizeEnabled=false,mIsUiAutomationEnabled=false,mIsInterestedPackage=false
04-05 19:06:55.384 30168-30168/com.example.inshorts I/art:拒绝重新初始化之前失败的类 java.lang.class
*package com.example.inshorts;
import android.app.LoaderManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.ProgressBar;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.linearlayoutmanager;
import androidx.recyclerview.widget.RecyclerView;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolBox.JsonArrayRequest;
import com.android.volley.toolBox.JsonObjectRequest;
import com.android.volley.toolBox.StringRequest;
import com.android.volley.toolBox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private RecyclerView topheadlinesRecycleView;
private NewsAdapter newsAdapter;
private final List<NewsContent> topHeadlines=new ArrayList<>();
private int per_page=20;
private static final String newsapiUrl="https://newsapi.org/v2/everything?q=tesla&from=2021-03-05&sortBy=publishedAt&apiKey=***************";
enter code here
private String LOGTag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
topheadlinesRecycleView= findViewById(R.id.RecyleView);
//Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET,newsapiUrl,new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// display the first 500 characters of the response string.
try {
JSONObject jsonObject=new JSONObject(response);
JSONArray newsArray=jsonObject.getJSONArray("articles");
for(int i=0;i<newsArray.length();i++){
JSONObject jsonObject1=newsArray.getJSONObject(i);
String title=jsonObject1.getString("title");
String description=jsonObject1.getString("description");
String urlImage=jsonObject1.getString("");
}
} catch (JSONException e) {
Toast.makeText(getApplicationContext(),"data not found",Toast.LENGTH_LONG).show();
e.printstacktrace();
}
}
},new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(),error.toString()+ "data not found",Toast.LENGTH_LONG).show();
Log.d(LOGTag,error.toString());
}
});
// Add the request to the RequestQueue.
queue.add(stringRequest);
newsAdapter=new NewsAdapter(topHeadlines,this);
final linearlayoutmanager layoutManager=new linearlayoutmanager(this);
layoutManager.setorientation(linearlayoutmanager.VERTICAL);
topheadlinesRecycleView.setLayoutManager(new linearlayoutmanager(this));
topheadlinesRecycleView.setAdapter(newsAdapter);
newsAdapter.notifyDataSetChanged();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。