Я столкнулся с этой же проблемой, за исключением того, что принятое решение не применялось, так как все проекты в моем решении были настроены на сбор по всем соответствующим конфигурациям.
В итоге я очень внимательно посмотрел в моем sln-файле и заметил пагубную ошибку слияния, которая мешала MSBuild строить Project2:
Project("{Guid1}") = "Project1", "Project1\Project1.csproj", "{Guid2}"
Project("{Guid1}") = "Project2", "Project2\Project2.csproj", "{Guid3}"
EndProject
. При слиянии после моего последнего git rebase
я случайно отрубил EndProject
. Добавив его в исправленную проблему, вот так:
Project("{Guid1}") = "Project1", "Project1\Project1.csproj", "{Guid2}"
EndProject
Project("{Guid1}") = "Project2", "Project2\Project2.csproj", "{Guid3}"
EndProject
(я использовал Visual Studio 2015)
Как использовать AsyncTask с urlconnection, который требует вставки return
blockquote>Вам нужно вернуть строку в вашем методе
[117 ] Также нет необходимости использовать другойUpdate()
Thread
в вашемUpdate()
методе, потому чтоAsyncTask
уже работает в фоновом режиме
SAMPLE CODE
public String Update(final String urlString){ String result=""; try { URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setDoOutput(true); connection.setDoInput(true); connection.setUseCaches(false); connection.connect(); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream(), "UTF-8")); writer.write("name=abc"); writer.close(); int responseCode = connection.getResponseCode(); if(responseCode == HttpURLConnection.HTTP_OK){ InputStream inputStream = connection.getInputStream(); StringBuilder stringBuilder = new StringBuilder(); String line; BufferedReader br = new BufferedReader(new InputStreamReader(inputStream)); while ((line = br.readLine()) != null) { stringBuilder .append(line); } result = stringBuilder .toString(); } } catch (Exception e) { e.printStackTrace(); } return result; } public class MyAsyncTask extends AsyncTask<String,String,String> { @Override protected void onPreExecute(){ super.onPreExecute(); } @Override protected String doInBackground(String...url) { return Update(url[0]); } @Override protected void onPostExecute(String result){ Log.d("TAG", result); } }
extends AsyncTask<String,Void,String>
Здесь String означает, что AsynkTask ожидает тип String в Return.
protected String doInBackground(String...url) {
return Update(url[0]);
}
Уже в отдельной теме. Просто удалите его из метода.
пс. Не используйте AsynkTask для соединений с сервером. (это нестабильная вещь с жизненным циклом Activity)
Используйте приведенный ниже код для запуска AsyncTask:
MyAsyncTask task = new MyAsyncTask();
task.execute(URL);
Обратите внимание: при использовании AsyncTask не следует создавать новую тему в методе Update (URL)