为了账号安全,请及时绑定邮箱和手机立即绑定

从服务器接收数据时出现Android错误

从服务器接收数据时出现Android错误

幕布斯6054654 2021-04-13 16:08:50
我正在使用Android中的代码:以编程方式安装.apk。我试图从服务器接收数据,以更新我的应用程序。单击按钮后,应用程序崩溃。如果您知道要解决这些错误很热,请告诉我。我收到此错误:android.os.NetworkOnMainThreadExceptionat com.example.appupdate.SelfInstall01Activity.GetVersionFromServer(SelfInstall01Activity.java:285)at com.example.appupdate.SelfInstall01Activity$1.onClick(SelfInstall01Activity.java:89)我那里有错误:btnCheckUpdates.setOnClickListener(new OnClickListener()    {        @Override        public void onClick(View arg0)        {            GetVersionFromServer(BuildVersionPath);           //here            if(checkInstalledApp(AppName.toString()) == true)            {                Toast.makeText(getApplicationContext(), "Application Found " + AppName.toString(), Toast.LENGTH_SHORT).show();            }else{                Toast.makeText(getApplicationContext(), "Application Not Found. "+ AppName.toString(), Toast.LENGTH_SHORT).show();            }        }    });和:HttpURLConnection c = (HttpURLConnection) u.openConnection();    c.setRequestMethod("GET");    c.setDoOutput(true);    c.connect();    //here
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

当您在主线程中执行网络操作时,会发生NetworkOnMainThreadException。您需要在doInBackground方法中执行网络操作


在这里,您的按钮单击功能应该是这样的。


btnCheckUpdates.setOnClickListener(new OnClickListener()

    {

        @Override

        public void onClick(View arg0)

        { 

           new YourTask().execute();

        }

    });

这是您的网络操作。


private class YourTask extends AsyncTask<String, String,String> {

     protected String doInBackground(String... urls) {


         // put here your network operation method

           GetVersionFromServer(BuildVersionPath)


        return null;

     }


 }


查看完整回答
反对 回复 2021-04-21
?
温温酱

TA贡献1752条经验 获得超4个赞

当您在UI /主线程中发出网络请求时,将引发NetworkOnMainThreadException。因此,您需要在主线程上调用GetVersionFromServer()。使用线程或AsyncTask。


查看完整回答
反对 回复 2021-04-21
  • 2 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信