2 qq 35159110 qq_35159110 于 2017.01.09 11:15 提问

ANDROID STUDIO网络问题

报错为:

01/09 11:01:50: Launching app
$ adb push C:\Users\Administrator\AndroidStudioProjects\MyApplication13\app\build\outputs\apk\app-debug.apk /data/local/tmp/com.example.administrator.myapplication
$ adb shell pm install -r "/data/local/tmp/com.example.administrator.myapplication"
Success

$ adb shell am start -n "com.example.administrator.myapplication/com.example.administrator.myapplication.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Client not ready yet..Connected to process 2346 on device emulator-5554
W/System: ClassLoader referenced unknown path: /data/app/com.example.administrator.myapplication-1/lib/x86
I/InstantRun: Instant Run Runtime started. Android package is com.example.administrator.myapplication, real application class is null.
W/System: ClassLoader referenced unknown path: /data/app/com.example.administrator.myapplication-1/lib/x86
W/art: Verification of void android.support.v7.app.AppCompatActivity.onSupportActionModeFinished(android.support.v7.view.ActionMode) took 1.372s
W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
W/gralloc_ranchu: Gralloc pipe failed

              [ 01-09 03:02:02.837  2346: 2346 D/         ]
              HostConnection::get() New Host Connection established 0x9daf8380, tid 2346

I/OpenGLRenderer: Initialized EGL, version 1.4
D/OpenGLRenderer: Swap behavior 1
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
Application terminated.

在权限中,我已经添加了网络权限。
但是不知道为什么就是不行。
源代码如下:
package com.example.administrator.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import static android.icu.lang.UCharacter.GraphemeClusterBreak.V;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
TextView responseText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button sendRquest=(Button)findViewById(R.id.send_request);
responseText=(TextView)findViewById(R.id.requestion_text);
sendRquest.setOnClickListener(this);

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

}
private void sendResquestWithHttpURLConnection()
{
 new Thread(new Runnable() {
     @Override
     public void run() {
         HttpURLConnection connection=null;
         BufferedReader reader=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();
             reader=new BufferedReader(new InputStreamReader(in));
             StringBuilder response=new StringBuilder();
            String line;
             while((line=reader.readLine())!=null)
             {
              response.append(in);

             }
             showResponse(response.toString());

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

         }
     }
 }).start();

}
private  void showResponse(final String response){
    runOnUiThread(new Runnable(){
        public void run(){
            responseText.setText(response);
        }
    });
}

}

5个回答

dabocaiqq
dabocaiqq   2017.01.14 22:59
qq_32808045
qq_32808045   2017.11.23 09:00
qq_33908388
qq_33908388   2017.05.24 11:49

你需要开启一个线程去执行,Android studio不允许在主线程中执行一些耗时的操作,你可以在onclick中
new Thread(new Runnable() {
@Override
public void run() {
//具体操作逻辑
}
}).start();

qq_33908388
qq_33908388   2017.05.24 11:50

你需要开启一个线程去执行网络连接服务,因为Android studio不允许在主线程中执行网络连接等耗时操作
new Thread(new Runnable() {
@Override
public void run() {
//具体操作逻辑
}
}).start();

duang0626
duang0626   2018.03.21 17:19
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
求解android studio连接网络问题?
使用studio ,第一次使用时要连接google 更新组件。 可是,这边的网络不行。下载的自由门貌似版本问题,服务器断断续续的,不能下载。 求大神,给个办法嘛    谢谢啦!!
android studio更新提示网络连接失败的解决办法
在Android Studio安装目录/bin/studio.exe.vmoptions文件中追加以下几行 -Djava.net.preferIPv4Stack=true -Didea.updates.url=http://dl.google.com/android/studio/patches/updates.xml -Didea.patches.url=http://dl.googl
解决Android Studio下载更新Android SDK网络异常或无法下载
今天重新安装了下Android Studio,在安装SDK时老是提示网络异常,于是上网查了下,解决方法如下:HTTP Proxy中Host name设置为mirrors.neusoft.edu.cn再勾选这样设置就好了,试了下下载速度很快,感谢好心人提供的方法
Android studio加载网络权限
使用Android Studio添加用户网络权限的时候和ADT的可视化添加是不同的, 做法是在AndroidManifest文件中添加一行代码 <uses-permission android:name="android.permission.INTERNET"/>
android studio开发:判断网络是否连接
/** 判断网络是否连接 */ private boolean isConnectIsNomarl() { ConnectivityManager connectivityManager = (ConnectivityManager) this.getApplicationContext().getSystemService(Context.CONNECTIVITY_SE...
AndroidStudio 中5.0以下的模拟器无法联网的问题 记录
打开sdk目录中的emulator文件夹,在此文件夹下调出控制台窗口(把路径直接替换成cmd,按回车)然后输入: emulator -avd @你模拟器的名字 -dns-server 8.8.8.8,114.114.114.114 例如: emulator -avd Nexus_4_API_19 -dns-server 8.8.8.8,114.114.114.114 不知道模拟器名字可以去
使用AndroidStudio经常遇到的三个常见问题 及解决
3个错误non-zero exit value 1; non-zero exit value 2; non-zero exit value 3 Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.build.api.transform.Transfor
解决Android模拟器不能上网的问题
Android模拟器默认的地址是10.0.2.3,默认的DNS也是10.0.2.3,对于在家里上网学习Android的人(像我)来讲,一般电脑的IP都是192.168.1.100之类的,不在同一个网段。所以就会出现电脑可以上网但是模拟器不能上网的情况。其实设置方法很简单,只要把模拟器的默认DNS设置成电脑的DNS地址即可。
android studio增加网络权限
在AndroidManifest.xml中加入一句 android:name="android.permission.INTERNET"/> 即可 android:name="android.permission.INTERNET"/> <application android:allowBackup="true" android:icon="
Android——子线程中访问网络数据问题
Service中开启子线程调用网络通信的解决方法