有 Java 编程相关的问题?

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

在Android中使用Java API

我正在尝试用Android运行this API java。因为Android中没有终端,System.out.printlne.printStackTrace没有编译,我试图在我找到它们的CartoDBClientSecuredCartoDBClient类中替换它。然而,即使这样做,应用程序也会意外关闭,并在LogCat中出现这些错误

这是密码

SecuredCartoDBClient:

@Override

    public String executeQuery(String sqlQuery){
        String json = null;
        if(oAuthService == null){
            //System.out.println("Error : uninitialized " + getClass().getName());
            Log.e(TAG, "Error : uninitialized " + getClass().getName(), null);
            return null;
        }
        OAuthRequest request = new OAuthRequest(Verb.POST, securedApiUrl);
        request.addBodyParameter("q", sqlQuery);
        oAuthService.signRequest(accessToken, request);
        Response response = request.send();
        if(!response.isSuccessful()){
            //System.out.println("The query " + sqlQuery + " failed.");
            Log.w(TAG, "The query " + sqlQuery + " failed.", null);
            //System.out.println("Response code : " + response.getCode());
            Log.i(TAG, "Response code : " + response.getCode(), null);
        }
        json = response.getBody();
        return json;
    }

CartoDBClient。爪哇

@Override

    public String executeQuery(String sqlQuery){
        String json = null;
        if(apiURL == null){
            //System.out.println("Error : uninitialized " + getClass().getName());
            Log.e(sqlQuery, "Error : uninitialized " + getClass().getName());
            return null;
        }
        try {
            sqlQuery = URLEncoder.encode(sqlQuery,ENCODING);
            json = IOUtils.toString(new URL(apiURL+sqlQuery), ENCODING);
        } catch (MalformedURLException e) {
            //System.out.println("Could not get URL " + apiURL+sqlQuery);
            Log.w(TAG, "Could not get URL " + apiURL+sqlQuery);
            Log.e(TAG, Log.getStackTraceString(e)); 
            //e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            Log.e(TAG, Log.getStackTraceString(e));
            //e.printStackTrace();
        }catch (IOException e) {
            //System.out.println("Could not execute " + sqlQuery+ " on CartoDB : ");
            Log.w(TAG, "Could not execute " + sqlQuery+ " on CartoDB : ");
            Log.e(TAG, Log.getStackTraceString(e));
            //e.printStackTrace();
        }
        return json;
    }

这里是logcat中出现的错误

05-04 19:58:39.128: E/AndroidRuntime(372): FATAL EXCEPTION: main

05-04 19:58:39.128: E/AndroidRuntime(372): java.lang.NoClassDefFoundError: org.apache.commons.io.IOUtils

05-04 19:58:39.128: E/AndroidRuntime(372):  at com.geocap.impl.CartoDBClient.executeQuery(CartoDBClient.java:84)

05-04 19:58:39.128: E/AndroidRuntime(372):  at com.geocap.Geocap.onCreate(Geocap.java:25)

05-04 19:58:39.128: E/AndroidRuntime(372):  at 安卓.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)

05-04 19:58:39.128: E/AndroidRuntime(372):  at 安卓.app.ActivityThread.performLaunchActivity(ActivityThread.java:1700)

05-04 19:58:39.128: E/AndroidRuntime(372):  at 安卓.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752)

05-04 19:58:39.128: E/AndroidRuntime(372):  at 安卓.app.ActivityThread.access$1500(ActivityThread.java:123)

05-04 19:58:39.128: E/AndroidRuntime(372):  at 安卓.app.ActivityThread$H.handleMessage(ActivityThread.java:993)

05-04 19:58:39.128: E/AndroidRuntime(372):  at 安卓.os.Handler.dispatchMessage(Handler.java:99)

05-04 19:58:39.128: E/AndroidRuntime(372):  at 安卓.os.Looper.loop(Looper.java:126)

05-04 19:58:39.128: E/AndroidRuntime(372):  at 
安卓.app.ActivityThread.main(ActivityThread.java:3997)

05-04 19:58:39.128: E/AndroidRuntime(372):  at java.lang.reflect.Method.invokeNative(Native Method)

05-04 19:58:39.128: E/AndroidRuntime(372):  at java.lang.reflect.Method.invoke(Method.java:491)

05-04 19:58:39.128: E/AndroidRuntime(372):  at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)

05-04 19:58:39.128: E/AndroidRuntime(372):  at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:599)

05-04 19:58:39.128: E/AndroidRuntime(372):  at dalvik.system.NativeStart.main(Native Method)

我感谢你在这件事上的帮助


共 (0) 个答案