android-Android网络通信真机测试

问题描述

Android网络通信真机测试

刚入门学习Android的小白,正在学写Android网络通信,用的是HttpURLConnection,但在真机上测试程序总是崩溃,

MainActivity中的代码如下

package com.example.httpurl;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

public static final int SHOW_RESPONSE=0;
private Button sendRequest;
private TextView responseText;
private Handler handler =new Handler(){

    public void handleMessage(Message msg){
        switch(msg.what){
        case SHOW_RESPONSE:
            String response =(String) msg.obj;
            responseText.setText(response);
        }
    }
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    sendRequest =(Button)findViewById(R.id.send_request);
    responseText=(TextView) findViewById(R.id.response);
    sendRequest.setOnClickListener(this);

}
public void onClick(View v){
  if(v.getId()==R.id.send_request)
  {
      sendRequestWithHttpURLConnection();
  }

}

private void sendRequestWithHttpURLConnection() {
// TODO Auto-generated method stub
    new Thread(new Runnable(){

        @Override
        public void run() {
            // TODO Auto-generated method stub
            HttpURLConnection connection=null;
            try{
                URL url =new URL("http://www.baidu.com");
                connection=(HttpURLConnection)url.openConnection();
                connection.setRequestMethod("GET");
                connection.setConnectTimeout(8000);
                connection.setReadTimeout(8000);
                InputStream in=connection.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                StringBuilder response =new StringBuilder();
                String line;
                while((line=reader.readLine()) != null){
                    response.append(line);
                }
                Message message = new Message();
                message.what =SHOW_RESPONSE;
                message.obj =response.toString();
                handler.sendMessage(message);

            }catch(Exception e){
                e.printStackTrace();
            }finally{
                if(connection !=null)
                {
                    connection.disconnect();
                }
            }
        }

    }).start();

}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

}
后面发现了是xml文件的问题,但是
点击按钮不会返回相应的数据,使用Logcat查看出现以下内容,没太能看懂,求解谢谢!

解决方案

接上电脑,启动程序,看logcat的输出日志

解决方案二:

有加网络权限没?还是看logcat吧

解决方案三:

看下xml布局文件和这个是否对应,在看权限, 能看懂日志就直接看日志

时间: 2024-11-17 09:12:19

android-Android网络通信真机测试的相关文章

android模拟器-Android模拟器与真机测试结果不一样?

问题描述 Android模拟器与真机测试结果不一样? 初学Android:下面一段程序在android模拟器中TextView的时间可以随自己的选择改变,但是放到真机中无论怎么改变时间TextView中的内容都不改变问题出在哪里? Java源码: package com.example.harleyjiang.widgetdemo; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import

Android Studio 开发 真机测试 如何访问本地服务器下的内容

问题描述 Android Studio 开发 真机测试 如何访问本地服务器下的内容 请大神指点下,谢谢! win7 虚拟服务器用的是tomcat 本地电脑可以访问(localhost:8080/) 没有问题 APK编程用了 10.0.2.2:8080 没用 后来同时连入WiFi APK编程改为192.168.1.X:8080 (本地电脑的IP)还是没用 用手机浏览器连接192.168.1.X:8080 (本地电脑的IP) 刚连上就停在那里 什么内容都没有 注:电脑的杀毒软件都关了. 解决方案 w

android乱码-android虚拟器不乱码真机测试乱码

问题描述 android虚拟器不乱码真机测试乱码 项目中有地图API ,侧滑菜单还有出柜布局,在真机上滑动几次之后就会出现乱码,在oppo,步步高,华为,小米测试 结果都是会发生乱码问题 解决方案 应该是你编码问题吧你那个侧菜单应该是在网上下载的例子然后直接复制到你的项目造成编码问题,你把编码调成GBK,或者UTF-8. 解决方案二: 乱码都是由于编码不一致而引起的,看看项目中是否引用了不同的编码.

android播放swf,程序没有问题了,但是真机测试就是一直提示flash插件版本过低

问题描述 android播放swf,程序没有问题了,但是真机测试就是一直提示flash插件版本过低 如题,我的手机是华为荣耀3c.编译什么的都没问题了,在avd上也正常,难道是手机不支持么? 解决方案 从adobe官网下载对应的flash的apk更新下. 解决方案二: 都是过了,不管是adobe官网还是从自带的app市场都不行

android开发真机测试问题

问题描述 android开发真机测试问题 真机测试走到这一步Installing ButtonText.apk... 就一直不动,但手机里已经安装好了该apk. 不过真机不会自动运行该APK,过一会就提示Failed to install ButtonText.apk on device 'HT14RT227816!2013-05-08 16:50:41 - ButtonText [2013-05-08 16:50:41 - ButtonText] Launch canceled! 解决方案 好

android真机测试连接不上服务器

问题描述 android真机测试连接不上服务器 本人新手,按照网上的教程写socket通信 在模拟器上能够连接到服务器,但在真机上测试时始终连接不上,是什么情况啊??? 解决方案 从网上看到,基本上有着三种方法实现如题功能: (1)将应用后台服务器部署到某台可以通过公网访问的服务器上,手机访问该公网IP地址,类似于公网试用 (2)设置局域网,手机通过WIFI访问局域网中的某台服务器(拥有局域网IP地址) (3)Android的Internet传输功能 由于没有公网IP,所以方法一不可行,由于自己

一个android项目代码eclipse没有提示有错误,但是真机测试时运行终止,那么是什么异常呢,如何debug呢

问题描述 一个android项目代码eclipse没有提示有错误,但是真机测试时运行终止,那么是什么异常呢,如何debug呢 一个android项目代码eclipse没有提示有错误,但是真机测试时运行终止,那么是什么异常呢,如何debug呢 解决方案 手机连接电脑,直接从eclipse运行到手机上,打开eclipse的logcat,查看手机打印log,当手机运行终止时会有异常打印.看异常就可以了,然后找出问题所在.

android studio 用真机测试程序对手机有什么影响?

问题描述 android studio 用真机测试程序对手机有什么影响? 如题 想做安卓开发 但是模拟器老是出问题 只能用真机测试了 现在就想问问 对手机有什么影响? 解决方案 坏的快,还是用公司的测试机吧 解决方案二: 用公司的测试机有点慢不习惯,就用自己的手机真机测试,最只管的变化是手机桌面布局乱了. 解决方案三: .你们公司没有提供多个测试机器吗?最终肯定是放在真实机器里面的 . 解决方案四: 用自己的手机做测试机,遇到的问题就是经常性的安装卸载apk,有时还要root,长期的使用,手机会

android.widget.CalendarView真机运行慢

问题描述 android.widget.CalendarView真机运行慢 本人刚刚开始学安卓 我新建了一个空白工程,就在布局文件中加了 android:id="@+id/calendar" android:layout_width="fill_parent" android:layout_height="wrap_content" > 能够在安卓手机上运行出日历,但是显示的时间十分慢(大概延迟了7秒才能显示,先白屏一会再黑屏一会 再显示出