Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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 从多个URL检索和解析JSON并添加到listview_Android_Json_Listview_Ion Koush - Fatal编程技术网

Android 从多个URL检索和解析JSON并添加到listview

Android 从多个URL检索和解析JSON并添加到listview,android,json,listview,ion-koush,Android,Json,Listview,Ion Koush,一周前我开始学习android,并决定为一个网站编写一个简单的android应用程序。我使用koush/ion api从url检索json数据 问题是——我有一个JSON文件,其中包含多个JSON URL。现在我尝试在for循环中检索所有JSON,但这似乎不起作用。代码如下: Future<JsonObject> loading; private void load() { // don't attempt to load more if a load is already

一周前我开始学习android,并决定为一个网站编写一个简单的android应用程序。我使用koush/ion api从url检索json数据

问题是——我有一个JSON文件,其中包含多个JSON URL。现在我尝试在for循环中检索所有JSON,但这似乎不起作用。代码如下:

Future<JsonObject> loading;

private void load() {
    // don't attempt to load more if a load is already in progress
    if (loading != null && !loading.isDone() && !loading.isCancelled())
        return;

    // load the tweets
    String url = "http://bhooka.in/web_services_json_helper.php?mode=fetch_locations&user_agent=in.bhooka.bhooka&city_id=4";
    loading = Ion.with(this)
            .load(url)
            .asJsonObject()
            .setCallback(new FutureCallback<JsonObject>() {
                @Override
                public void onCompleted(Exception e, JsonObject result) {
                    // this is called back onto the ui thread, no Activity.runOnUiThread or Handler.post necessary.
                    if (e != null) {
                        Toast.makeText(getView().getContext(), "Error loading information", Toast.LENGTH_LONG).show();
                        return;
                    }
                    JsonArray locationsList = result.getAsJsonArray("locations");
                    // add the tweets
                    for (int i = 0; i < locationsList.size(); i++) {
                        try {
                            JsonObject temp = Ion.with(getView().getContext())
                                    .load("http://bhooka.in/web_services_json_helper.php?mode=fetch_loc_info&user_agent=in.bhooka.bhooka&loc_id=" + locationsList.get(i).getAsJsonObject().get("post_id").getAsString())
                                    .asJsonObject().get();
                            placeArrayAdapter.add(temp.get("loc_info").getAsJsonObject());
                        }
                        catch (Exception ex)
                        {
                            ex.printStackTrace();
                        }

                                /* tried this approach - but it doesn't work
                                .setCallback(new FutureCallback<JsonObject>() {
                                    @Override
                                    public void onCompleted(Exception e, JsonObject result) {
                                        // this is called back onto the ui thread, no Activity.runOnUiThread or Handler.post necessary.
                                        if (e != null) {
                                            Toast.makeText(getView().getContext(), "Error loading information", Toast.LENGTH_LONG).show();
                                            return;
                                        }
                                        placeArrayAdapter.add(result.get("loc_info").getAsJsonObject());
                                    }
                                });*/
                    }
                }
            });
}
未来加载;
专用空心荷载(){
//如果加载已在进行,则不要尝试加载更多
if(loading!=null&&!loading.isDone()&&!loading.isCancelled())
返回;
//加载推文
字符串url=”http://bhooka.in/web_services_json_helper.php?mode=fetch_locations&user_agent=in.bhooka.bhooka&city_id=4";
加载=离子(此)
.load(url)
.asJsonObject()
.setCallback(新的FutureCallback(){
@凌驾
未完成公共无效(异常e,JsonObject结果){
//这会回调到ui线程,不需要Activity.runOnUiThread或Handler.post。
如果(e!=null){
Toast.makeText(getView().getContext(),“加载信息时出错”,Toast.LENGTH_LONG.show();
返回;
}
JsonArray locationsList=result.getAsJsonArray(“位置”);
//添加推文
对于(int i=0;i
应用程序打开,然后冻结。我也尝试过使用回调的异步方法,但它只是在listview中显示一个或两个条目,然后崩溃。谁能告诉我我做错了什么

非常感谢

编辑:根据建议,这里是日志:

07-14 17:02:11.851  20332-20332/? D/dalvikvm﹕ Late-enabling CheckJNI
07-14 17:02:11.867  20332-20338/? D/dalvikvm﹕ Debugger has detached; object registry had 1 entries
07-14 17:02:12.206  20332-20332/? I/Adreno-EGL﹕ <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_LNX.LA.3.5.1_RB1.04.04.02.048.018_msm8610_LNX.LA.3.5.1_RB1__release_AU ()
    OpenGL ES Shader Compiler Version: E031.24.00.08
    Build Date: 03/07/14 Fri
    Local Branch:
    Remote Branch: quic/LNX.LA.3.5.1_RB1.1
    Local Patches: NONE
    Reconstruct Branch: AU_LINUX_ANDROID_LNX.LA.3.5.1_RB1.04.04.02.048.018 + f2fd134 +  NOTHING
07-14 17:02:12.244  20332-20332/? D/OpenGLRenderer﹕ Enabling debug mode 0
07-14 17:02:14.469  20332-20364/in.bhooka.bhooka D/dalvikvm﹕ Trying to load lib /data/app-lib/in.bhooka.bhooka-2/libgmscore.so 0x41d995f0
07-14 17:02:14.470  20332-20364/in.bhooka.bhooka E/dalvikvm﹕ dlopen("/data/app-lib/in.bhooka.bhooka-2/libgmscore.so") failed: dlopen failed: library "/data/app-lib/in.bhooka.bhooka-2/libgmscore.so" not found
07-14 17:02:14.470  20332-20364/in.bhooka.bhooka E/ProviderInstaller﹕ Unable to load native code from /data/app-lib/in.bhooka.bhooka-2/libgmscore.so
07-14 17:02:14.470  20332-20364/in.bhooka.bhooka D/dalvikvm﹕ Trying to load lib /data/app-lib/com.google.android.gms-2/libgmscore.so 0x41d995f0
07-14 17:02:14.472  20332-20364/in.bhooka.bhooka D/dalvikvm﹕ Added shared lib /data/app-lib/com.google.android.gms-2/libgmscore.so 0x41d995f0
07-14 17:02:14.472  20332-20364/in.bhooka.bhooka D/dalvikvm﹕ No JNI_OnLoad found in /data/app-lib/com.google.android.gms-2/libgmscore.so 0x41d995f0, skipping init
07-14 17:02:14.474  20332-20364/in.bhooka.bhooka E/ProviderInstaller﹕ libgmscore version mismatch (0 vs. 7574)
07-14 17:02:14.474  20332-20364/in.bhooka.bhooka W/IonConscrypt﹕ Conscrypt initialization failed.
07-14 17:02:44.955  20332-20364/in.bhooka.bhooka D/dalvikvm﹕ GC_FOR_ALLOC freed 3066K, 29% free 7930K/11072K, paused 37ms, total 47ms
07-14 17:02:45.008  20332-20332/in.bhooka.bhooka D/AndroidRuntime﹕ Shutting down VM
07-14 17:02:45.008  20332-20332/in.bhooka.bhooka W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x415dad40)
07-14 17:02:45.010  20332-20332/in.bhooka.bhooka E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: in.bhooka.bhooka, PID: 20332
    java.lang.NullPointerException
            at in.bhooka.bhooka.MainActivity$1.onCompleted(MainActivity.java:73)
            at in.bhooka.bhooka.MainActivity$1.onCompleted(MainActivity.java:67)
            at com.koushikdutta.async.future.SimpleFuture.handleCallbackUnlocked(SimpleFuture.java:107)
            at com.koushikdutta.async.future.SimpleFuture.setComplete(SimpleFuture.java:141)
            at com.koushikdutta.async.future.SimpleFuture.setComplete(SimpleFuture.java:124)
            at com.koushikdutta.ion.IonRequestBuilder$1.run(IonRequestBuilder.java:244)
            at com.koushikdutta.async.AsyncServer$RunnableWrapper.run(AsyncServer.java:57)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5086)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
07-1417:02:11.85120332-20332/?D/dalvikvm﹕ 延迟启用CheckJNI
07-14 17:02:11.867  20332-20338/? D/dalvikvm﹕ 调试器已分离;对象注册表有1个条目
07-14 17:02:12.206  20332-20332/? I/Adreno EGL﹕ : EGL 1.4高通公司构建:AU_LINUX_ANDROID_LNX.LA.3.5.1_RB1.04.04.02.048.018_msm8610_LNX.LA.3.5.1_RB1_发布版
OpenGL ES着色器编译器版本:E031.24.00.08
建造日期:2014年7月3日星期五
本地分行:
远程分支机构:quic/LNX.LA.3.5.1_RB1.1
本地修补程序:无
重构分支:AU_LINUX_ANDROID_LNX.LA.3.5.1_RB1.04.04.02.048.018+f2fd134+NOTHING
07-14 17:02:12.244  20332-20332/? D/opengl渲染器﹕ 正在启用调试模式0
07-14 17:02:14.469 20332-20364/in.bhooka.bhooka D/dalvikvm﹕ 正在尝试加载lib/data/app lib/in.bhooka.bhooka-2/libgmscore.so 0x41d995f0
07-14 17:02:14.470 20332-20364/in.bhooka.bhooka E/dalvikvm﹕ dlopen(“/data/app lib/in.bhooka.bhooka-2/libgmscore.so”)失败:dlopen失败:库“/data/app lib/in.bhooka.bhooka-2/libgmscore.so”未找到
07-14 17:02:14.470 20332-20364/in.bhooka.bhooka E/供应商安装商﹕ 无法从/data/app lib/in.bhooka.bhooka-2/libgmscore.so加载本机代码
07-14 17:02:14.470 20332-20364/in.bhooka.bhooka D/dalvikvm﹕ 正在尝试加载lib/data/app lib/com.google.android.gms-2/libgmscore.so 0x41d995f0
07-14 17:02:14.472 20332-20364/in.bhooka.bhooka D/dalvikvm﹕ 添加了共享lib/data/app lib/com.google.android.gms-2/libgmscore.so 0x41d995f0
07-14 17:02:14.472 20332-20364/in.bhooka.bhooka D/dalvikvm﹕ 在/data/app lib/com.google.android.gms-2/libgmscore.so 0x41d995f0中未找到JNI_OnLoad,正在跳过初始化
07-14 17:02:14.474 20332-20364/in.bhooka.bhooka E/供应商安装商﹕ libgmscore版本不匹配(0对7574)
07-14 17:02:14.474 20332-20364/in.bhooka.bhooka W/IonConscrypt﹕ Conscrypt初始化失败。
07-14 17:02:44.955 20332-20364/in.bhooka.bhooka D/dalvikvm﹕ 所有释放3066K的GC_,29%的自由7930K/11072K,暂停37ms,总计47ms
07-14 17:02:45.008 20332-20332/in.bhooka.bhooka D/AndroidRuntime﹕ 关闭虚拟机
07-14 17:02:45.008 20332-20332/in.bhooka.bhooka W/dalvikvm﹕ threadid=1:线程以未捕获异常退出(组=0x415dad40)
07-14 17:02:45.010 20332-20332/in.bhooka.bhooka E/AndroidRuntime﹕ 致命异常:主
流程:in.bhooka.bhooka,PID:20332
java.lang.NullPointerException
在in.bhooka.bhooka.MainActivity$1.onCompleted(MainActivity.java:73)
在in.bhooka.bhooka.MainActivity$1.onCompleted(MainActivity.java:67)
在com.koushikdutta.async
Handler handler = new Handler();
handler.post(new Runnable() {
    @Override
    public void run() {
        placeArrayAdapter.add(temp.get("loc_info").getAsJsonObject());
    }
}