有 Java 编程相关的问题?

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

java Wolphram | Alpha API Android异常错误

你好,我是Yassine,我是安卓开发的新手。 我想创建一个简单的应用程序,从WolframAlpha网站检索答案。我被很多错误所困扰。 这是我代码的一部分:

`//Get The Search Input From The Main Activity
String sciSearch = myIntent.getStringExtra(HomeActivity.EXTRA_MESSAGE);
    //Call WAengine

            WAEngine engine = new WAEngine();
            Log.d("Engine","Engine Was Created");
            //Check The App Id
            engine.setAppID(appid);
             Log.d("AppId","App Selected");
            engine.addFormat("plaintext");
            //Create A Query
            WAQuery query = engine.createQuery();
//Submit The Query
            query.setInput(sciSearch);
            //Get Results
            //Print The Url
            result  = (TextView) findViewById(R.id.title);
            content = (TextView) findViewById(R.id.content);
            //String url = engine.toURL(query);
            //result.setText(url);
            //Here is The Problem
            try{
                Log.d("Query Performed","The Query was not performed");
                WAQueryResult queryResult = engine.performQuery(query);
                Log.d("Query Performed","The Query was performed");
                for(WAPod pod : queryResult.getPods()){
                    if(!pod.isError()){
                        Log.d("Pod",pod.getTitle());
                        //result.setText(pod.getTitle());

                             for (WASubpod subpod : pod.getSubpods()) {
                                for (Object element : subpod.getContents()) {
                                    if (element instanceof WAPlainText) {
                                       //content.setText(((WAPlainText) element).getText());
                                        Log.d("Content",((WAPlainText) element).getText());
                                    }
                                }
                            }
                    }

                }
            }catch (WAException e) {

                e.printStackTrace();
            }`

当我检查Logcat时,它会记录第一个错误没有执行查询。 然后,我得到了另一个错误,将“URLFetcher”作为标记,它说下载URLhttp://api.wolframalpha.com/v2/query?appid=XXX&input=pi&format=PLAINTEXT&async=false&reinterpret=true 然后是另一个也是最后一个错误标签:EGL_genymotion表示eglSurfaceAttrib未实现。 我希望我足够清楚,我已经检查了请求的url,它返回了一个xml文件,所以我应该使用XmlPullParser来解析它,而不是使用Wolframe库中的默认url。抱歉,如果我的代码不专业,我仍在努力(将进行一些重构):)。谢谢


共 (1) 个答案

  1. # 1 楼答案

    我找到了它抛出异常的原因,结果发现问题出在我编译的android版本中。我只需添加这些行,效果很好

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder() .detectAll().penaltyLog().build(); 
        StrictMode.setThreadPolicy(policy);
    

    谢谢