2012-08-02 39 views
2

我在我的Android应用程序中使用了一个名为AndEngine(我完全陌生)的游戏引擎。我需要根据屏幕上的游戏杆位置(上传到.cgi服务器)从应用程序加载不同的URL。困境是我无法打开URL连接!这看起来可能很简单,但我已到处寻找,尝试了多种解决方案,而且没有任何工作。在基本的Android中,我一直使用WebView(loadUrl()方法),并且运行良好。但是,我不知道如何在使用AndEngine的情况下创建webview。我的首选是连接没有显示(加载在AndEngine场景下面),因为我需要屏幕来处理其他事情。我也尝试了其他解决方案。我只是尝试这样的代码,但是当我检查了服务器,什么也没有开通:如何在AndEngine中使用webview或打开网址 - Android

@Override 
public void onLoadResources() { 

    //methods n/a to this question 

    try { 
     URL url = new URL(setUrl); 
     HttpURLConnection con = (HttpURLConnection) url.openConnection(); 
     readStream(con.getInputStream()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return scene; // AndEngine return statement 
} 

private void readStream(InputStream in) { 
    BufferedReader reader = null; 
    try { 
     reader = new BufferedReader(new InputStreamReader(in)); 
     String line = ""; 
     while ((line = reader.readLine()) != null) { 
      System.out.println(line); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     if (reader != null) { 
      try { 
       reader.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 

**我用HTTPConnection类之前(不含AndEngine)打开一个URL试过,但无济于事。所以这可能是我在这里做错了事。使用AndEngine GLES2。如果需要更多信息,请告诉我(这是我的第一个问题)。

也试过用

@Override 
protected int getLayoutID() { 
return R.layout.main; 
} 

上AndEngine建立我的.xml布局,但它说:“型控制方法getLayoutID()必须覆盖或实现超法”

编辑对Nicolas Gramlich的回应:设置了Internet权限,编译器最初为1.6。仍然不知道问题是什么。

回答

3

我解决我的问题。我不得不在独立于主线程的线程上运行所有的网络操作(否则会抛出一个NetworkOnMainThread异常)。我不知道为什么没有其他工作,但这个伎俩!在这里,我正在创建一个新的线程,并执行我想要执行的操作,然后在异常处理完成后启动它。我发现我的回答here

new Thread(new Runnable() { 
public void run() { 
HttpClient httpClient = new DefaultHttpClient(); 
HttpContext localContext = new BasicHttpContext(); 
HttpGet httpGet = new HttpGet("your_url"); 
try { 
HttpResponse response = httpClient.execute(httpGet, localContext); 
} catch (ClientProtocolException e) { 
e.printStackTrace(); 
} catch (IOException e) { 
e.printStackTrace(); 
} 
} 
}).start(); 
+0

我想在Android中使用AndEngine,在mycase中,我想用webview打开一个新的活动,但是当我这样做时,它会花费太多时间来加载新视图...任何想法在这里。 – CoDe 2012-08-10 08:20:20

+0

你能再详细一点吗?你是否想要打开一个包含webview的新活动?而且我也体验过webview加载速度有点慢,这取决于我的连接 – davanp 2012-08-11 00:17:35

3
  1. xml <manifest xlmns:android...> ... <uses-permission android:name="android.permission.INTERNET"/> </manifest>

  2. 组Java编译器符合1.6

+1

嘿,非常感谢您的回复。不过,我确实设置了互联网权限。问题仍然存在。编译器自动设置为1.6 – davanp 2012-08-02 18:33:25

相关问题