04-27 09:06:46.169: DEBUG/SntpClient(71): request time failed: java.net.SocketException: Address family not supported by protocolpublic class Mp3ListActivity extends ListActivity {
private final static int UPDATE=1;
private final static int ABOUT=2;

    /* (non-Javadoc)
 * @see android.app.Activity#onCreateOptionsMenu(android.view.Menu)
 */
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, UPDATE, 1, R.string.mp3list_update);
menu.add(0,ABOUT,2,R.string.mp3list_about);
// TODO Auto-generated method stub
return super.onCreateOptionsMenu(menu);
} /* (non-Javadoc)
 * @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem)
 */
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId()==UPDATE){
String XML=this.downloadXML("http://10.0.2.2:8080/mp3/resource.xml");
this.parse(XML);
}else if(item.getItemId()==ABOUT){

}
System.out.println("itemId---->"+item.getItemId());
return super.onOptionsItemSelected(item);
}
/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
     private String downloadXML(String urlStr){
HttpDownloader httpDownloader=new HttpDownloader();
return httpDownloader.download(urlStr);
}

private List<Mp3Info> parse(String xmlStr){
SAXParserFactory saxParserFactory=SAXParserFactory.newInstance();
try{
XMLReader xmlReader=saxParserFactory.newSAXParser().getXMLReader();
List<Mp3Info> infos=new ArrayList<Mp3Info>();
Mp3ListContentHandler mp3ListContentHandler=new Mp3ListContentHandler(infos);
xmlReader.setContentHandler(mp3ListContentHandler);
xmlReader.parse(new InputSource(new StringReader(xmlStr)));
for(Iterator<Mp3Info> iterator=infos.iterator();iterator.hasNext();){
Mp3Info mp3Info=iterator.next();
System.out.println(mp3Info);
}
}catch(Exception e){
e.printStackTrace();
}
return null;
}
}public class HttpDownloader {

public String download(String urlStr){
StringBuffer sb=new StringBuffer();
String line=null;
BufferedReader buffer=null;
try{
URL url=new URL(urlStr);
HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();
buffer=new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
while((line=buffer.readLine())!=null){
sb.append(line);
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
buffer.close();
}catch(Exception e){
e.printStackTrace();
}
}
return sb.toString();
}
}

解决方案 »

  1.   

    靠,原来要新建一个测试项目的,这个和以前的android不同。谁来呼应一下,方便给分。
      

  2.   

    是默认的网关没有设置,如下:C:\Documents and Settings\Administrator>ipconfigWindows IP Configuration
    Ethernet adapter 无线网络连接:        Connection-specific DNS Suffix  . :
            IP Address. . . . . . . . . . . . : 192.168.1.104
            Subnet Mask . . . . . . . . . . . : 255.255.255.0
            Default Gateway . . . . . . . . . : 192.168.1.1
      

  3.   

    遇到同样的问题 实现上传功能的时候 但是加上android.permission.READ_PHONE_STATE权限之后,上传就实现了 虽然还是报这个错
      

  4.   

    我也遇到这个问题,logcat每5分钟出来一次
      

  5.   

    XmlRpc.setDriver("org.apache.xerces.parsers.SAXParser");
    XmlRpcClient client = new XmlRpcClient(
    "http://192.168.1.107:8080/CourseService/XmlRpcServlet");
    把IP地址设置成本机地址问题就解决了为何10.0.0.2不行?
      

  6.   

    问题不在这里应该是在包含你的Activity的文件里面
      

  7.   

    在AndroidManifest.xml里面加上权限就好了
      

  8.   

    在AndroidManifest.xml中添加 <uses-permission android:name="android.permission.INTERNET"></uses-permission>设置权限