Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.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
不同设备的Android截击库错误_Android_Android Volley - Fatal编程技术网

不同设备的Android截击库错误

不同设备的Android截击库错误,android,android-volley,Android,Android Volley,该应用程序使用Volley库发出简单的GET请求,我将APK发送给一些使用不同设备的人,他们同意测试该应用程序。14人中有10人经验丰富,对提出请求的速度感到满意。但其他4个无法获取请求,收到错误: public void onErrorResponse(VolleyError error) { Toast.makeText(getActivity(), "No internet connection", Toast.LENGTH_

该应用程序使用Volley库发出简单的GET请求,我将APK发送给一些使用不同设备的人,他们同意测试该应用程序。14人中有10人经验丰富,对提出请求的速度感到满意。但其他4个无法获取请求,收到错误:

public void onErrorResponse(VolleyError error) {
            Toast.makeText(getActivity(), "No internet connection",
                    Toast.LENGTH_LONG).show();
        }
由于物理距离的原因,我没有兴趣深入了解他们设备上的实际调试。 这就是为什么我要向任何对库或这些设备型号有类似问题的人发布这个问题: 阿尔卡特一键阿尔法6032;夸脱-P5000;阿尔卡特一触式5036D; 我的AppController:

public class AppController extends Application {
public static final String TAG = AppController.class.getSimpleName();
private RequestQueue mRequestQueue;
private static AppController mInstance;

@Override
public void onCreate() {
    super.onCreate();
    mInstance = this;
}

public static synchronized AppController getInstance() {
    return mInstance;
}

public RequestQueue getRequestQueue() {
    if (mRequestQueue == null) {
        mRequestQueue = Volley.newRequestQueue(getApplicationContext());
    }

    return mRequestQueue;
}


public <T> void addToRequestQueue(Request<T> req, String tag) {
    // set the default tag if tag is empty
    req.setTag(TextUtils.isEmpty(tag) ? TAG : tag);
    getRequestQueue().add(req);
}

public <T> void addToRequestQueue(Request<T> req) {
    req.setTag(TAG);
    getRequestQueue().add(req);
}

public void cancelPendingRequests(Object tag) {
    if (mRequestQueue != null) {
        mRequestQueue.cancelAll(tag);
    }
}
}
public class RepertoireTab extends ListFragment {
private static final String URL = "http://example.com/?json=get_category_posts&slug=Repertoire&status=publish";   
ListView listView;
MovieAdapter adapter;
@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    adapter = new MovieAdapter(getActivity(), R.layout.listview_item);

    StringRequest movieReq = new StringRequest(URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Wrap wrap = new Gson().fromJson(response, Wrap.class);
                    for (Post post : wrap.getPosts()) {
                        adapter.add(post);
                    }
                    adapter.notifyDataSetChanged();                        
                }

            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(getActivity(), "No internet connection",
                    Toast.LENGTH_LONG).show();
        }
    });

    AppController.getInstance().addToRequestQueue(movieReq);


}

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.repertoire_tab, container, false);

    getActivity().getWindow().setBackgroundDrawable(null);

    listView = (ListView) view.findViewById(android.R.id.list);

    listView.setAdapter(adapter);
    return view;

}
}
公共类AppController扩展应用程序{
公共静态最终字符串标记=AppController.class.getSimpleName();
私有请求队列mRequestQueue;
专用静态应用控制器;
@凌驾
public void onCreate(){
super.onCreate();
mInstance=这个;
}
公共静态同步AppController getInstance(){
回报率;
}
公共请求队列getRequestQueue(){
if(mRequestQueue==null){
mRequestQueue=Volley.newRequestQueue(getApplicationContext());
}
返回mrequest队列;
}
公共无效addToRequestQueue(请求请求,字符串标记){
//如果标记为空,则设置默认标记
请求setTag(TextUtils.isEmpty(tag)?tag:tag;
getRequestQueue().add(请求);
}
公共无效addToRequestQueue(请求请求){
要求设置标签(标签);
getRequestQueue().add(请求);
}
公共作废取消挂起请求(对象标记){
if(mRequestQueue!=null){
mRequestQueue.cancelAll(标记);
}
}
}
我的片段类:

public class AppController extends Application {
public static final String TAG = AppController.class.getSimpleName();
private RequestQueue mRequestQueue;
private static AppController mInstance;

@Override
public void onCreate() {
    super.onCreate();
    mInstance = this;
}

public static synchronized AppController getInstance() {
    return mInstance;
}

public RequestQueue getRequestQueue() {
    if (mRequestQueue == null) {
        mRequestQueue = Volley.newRequestQueue(getApplicationContext());
    }

    return mRequestQueue;
}


public <T> void addToRequestQueue(Request<T> req, String tag) {
    // set the default tag if tag is empty
    req.setTag(TextUtils.isEmpty(tag) ? TAG : tag);
    getRequestQueue().add(req);
}

public <T> void addToRequestQueue(Request<T> req) {
    req.setTag(TAG);
    getRequestQueue().add(req);
}

public void cancelPendingRequests(Object tag) {
    if (mRequestQueue != null) {
        mRequestQueue.cancelAll(tag);
    }
}
}
public class RepertoireTab extends ListFragment {
private static final String URL = "http://example.com/?json=get_category_posts&slug=Repertoire&status=publish";   
ListView listView;
MovieAdapter adapter;
@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    adapter = new MovieAdapter(getActivity(), R.layout.listview_item);

    StringRequest movieReq = new StringRequest(URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Wrap wrap = new Gson().fromJson(response, Wrap.class);
                    for (Post post : wrap.getPosts()) {
                        adapter.add(post);
                    }
                    adapter.notifyDataSetChanged();                        
                }

            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(getActivity(), "No internet connection",
                    Toast.LENGTH_LONG).show();
        }
    });

    AppController.getInstance().addToRequestQueue(movieReq);


}

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.repertoire_tab, container, false);

    getActivity().getWindow().setBackgroundDrawable(null);

    listView = (ListView) view.findViewById(android.R.id.list);

    listView.setAdapter(adapter);
    return view;

}
}
公共类指令表选项卡扩展了ListFragment{
私有静态最终字符串URL=”http://example.com/?json=get_category_posts&slug=Repertoire&status=publish";   
列表视图列表视图;
电影适配器;
@凌驾
公共事务主任(活动){
超级转速计(活动);
adapter=newmovieadapter(getActivity(),R.layout.listview_项);
StringRequest movieReq=新的StringRequest(URL,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
Wrap-Wrap=new Gson().fromJson(响应,Wrap.class);
for(Post-Post:wrap.getPosts()){
适配器。添加(post);
}
adapter.notifyDataSetChanged();
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Toast.makeText(getActivity(),“无internet连接”,
Toast.LENGTH_LONG).show();
}
});
AppController.getInstance().addToRequestQueue(movieReq);
}
@凌驾
创建视图时的公共视图(LayoutFlater充气机、@Nullable ViewGroup容器、@Nullable Bundle savedInstanceState){
视图=充气机。充气(R.layout.repertoire_选项卡,容器,false);
getActivity().getWindow().setBackgroundDrawable(空);
listView=(listView)view.findviewbyd(android.R.id.list);
setAdapter(适配器);
返回视图;
}
}

我甚至尝试在另一个应用程序的活动中调用异步任务(截击代码),将apk文件发送到出现错误的设备,但仍然存在相同的问题同样,在其他设备上工作正常。

这里的一个问题是,您在onCreateView()方法中初始化ProgressBar,但在onCreateView()之前的onAttach方法中调用它。解决方案是在onActivityCreated()方法中移动异步任务(截取代码)。这是片段生命周期:


如果希望每次输入此片段时都执行截击任务,请将其放在onResume()方法中。

这里的问题之一是,在onCreateView()方法中初始化ProgressBar,但在onCreateView()之前的onAttach方法中调用它。解决方案是在onActivityCreated()方法中移动异步任务(截取代码)。这是片段生命周期:


如果您希望每次输入此片段时都执行截击任务,请将其放入onResume()方法。

也许在片段生命周期的早期,在onAttach中执行截击任务是正确的。尝试将截取代码移动到onActivityCreated或onCreate()。查看此链接:我已尝试在onActivityCreated方法中移动异步任务,但它在这些特定设备上仍然不起作用,我真的不明白,应用程序如何在某些设备上工作,而在其他设备上完全不起作用。可能是在片段生命周期的早期在onAttach中执行截击任务。尝试将截取代码移动到onActivityCreated或onCreate()。查看此链接:我已尝试在onActivityCreated方法中移动异步任务,但它仍然无法在这些特定设备上工作,我真的不明白,应用程序如何在某些设备上工作而在其他设备上完全不工作。我已尝试完全删除ProgressBar,仍然不工作。我尝试过完全删除ProgressBar,仍然不工作。