Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Retrofit + simpleXml может у кого есть примеры?

Retrofit + simpleXml может у кого есть примеры рабочего кода? Что-то с JSON чего хочешь. А с XML почти ничего нету в инете.
Ответ: 2 дня работы и я собрал по частям рабочий пример использования Retrofit2 + SimpleXmlConverterFactory + занесение результата в RecyclerView. И если я не ошибаюсь с использованием архитектурного паттерна MVP

В целом всё также как и с JSON, только модель будет другая.

Но пришлось изрядно попотеть. Теперь буду применять к своему проекту, где более сложная структура XML.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class MainActivity extends AppCompatActivity {
    private RecyclerView recyclerView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        recyclerView = (RecyclerView) findViewById(R.id.foods_recycler_view);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        initRestXML();
    }
 
    private void initRestXML() {
        ApiService service = ApiClient.getClient().create(ApiService.class);
        Call<FoodResponse> call = service.getFoods();
        call.enqueue(new Callback<FoodResponse>() {
            @Override
            public void onResponse(Call<FoodResponse> call, Response<FoodResponse> response) {
                ArrayList<Food> foodList = response.body().getFoodList();
                recyclerView.setAdapter(new FoodsAdapter(foodList, R.layout.food_item, getApplicationContext()));
            }
 
            @Override
            public void onFailure(Call<FoodResponse> call, Throwable t) {
                Log.d("TAG", "onFailure: ");
            }
        });
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
@Root(name = "food")
public class Food {
    @Element(name = "name")
    String name;
 
    @Element(name = "price")
    String price;
 
    @Element(name = "description")
    String description;
 
    @Element(name = "calories")
    String calories;
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getPrice() {
        return price;
    }
 
    public void setPrice(String price) {
        this.price = price;
    }
 
    public String getDescription() {
        return description;
    }
 
    public void setDescription(String description) {
        this.description = description;
    }
 
    public String getCalories() {
        return calories;
    }
 
    public void setCalories(String calories) {
        this.calories = calories;
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class ApiClient {
    private static Retrofit retrofit = null;
 
    public static Retrofit getClient() {
        if (retrofit == null) {
            retrofit = new Retrofit.Builder()
                    .baseUrl(NetworkConstants.BASE_URL)
                    .addConverterFactory(SimpleXmlConverterFactory.create())
                    .build();
        }
        return retrofit;
    }
 
}
Java
1
2
3
4
public interface ApiService {
    @GET(NetworkConstants.GET_FOODS)
    Call<FoodResponse>getFoods();
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public class FoodsAdapter extends RecyclerView.Adapter<FoodsAdapter.FoodViewHolder> {
    private ArrayList<Food> foodList;
    private int rowLayout;
    private Context context;
 
    public static class FoodViewHolder extends RecyclerView.ViewHolder {
        LinearLayout contactsLayout;
        TextView name, price, description, calories;
 
        public FoodViewHolder(View v) {
            super(v);
            contactsLayout = (LinearLayout) v.findViewById(R.id.foods_layout);
            name = (TextView) v.findViewById(R.id.food_name);
            price = (TextView) v.findViewById(R.id.food_price);
            description = (TextView) v.findViewById(R.id.food_description);
            calories = (TextView) v.findViewById(R.id.food_calories);
        }
    }
 
    public FoodsAdapter(ArrayList<Food> foods, int rowLayout, Context context) {
        this.foodList = foods;
        this.rowLayout = rowLayout;
        this.context = context;
    }
 
    @Override
    public FoodsAdapter.FoodViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(rowLayout, parent, false);
        return new FoodViewHolder(view);
    }
 
    @Override
    public void onBindViewHolder(FoodViewHolder holder, int position) {
        holder.name.setText(foodList.get(position).getName());
        holder.price.setText(foodList.get(position).getPrice());
        holder.description.setText(foodList.get(position).getDescription());
        holder.calories.setText(foodList.get(position).getCalories());
    }
 
    @Override
    public int getItemCount() {
        return foodList.size();
    }
}
Java
1
2
3
4
5
6
7
8
9
@Root(name = "breakfast_menu")
public class FoodResponse {
    @ElementList(inline = true)
    private ArrayList<Food> foodList;
 
    public ArrayList<Food> getFoodList() {
        return foodList;
    }
}
Java
1
2
3
4
public class NetworkConstants {
    public static final String BASE_URL = "http://www.w3schools.com/xml/";
    public static final String GET_FOODS = "simple.xml";
}
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.pavel.lesson8.MainActivity">
 
    <android.support.v7.widget.RecyclerView
        android:id="@+id/foods_recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
 
    </android.support.v7.widget.RecyclerView>
</RelativeLayout>
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/foods_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:padding="16dp">
 
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical">
 
        <TextView
            android:id="@+id/food_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
 
 
        <TextView
            android:id="@+id/food_price"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
 
        <TextView
            android:id="@+id/food_description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
 
        <TextView
            android:id="@+id/food_calories"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
 
    </LinearLayout>
</LinearLayout>
Добавлено через 12 часов 30 минут
Не забудьте про Permission INTERNET и

Java
1
2
3
4
5
6
7
  compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.android.support:recyclerview-v7:23.3.0'
    compile ('com.squareup.retrofit2:converter-simplexml:2.1.0'){
        exclude group: 'xpp3', module: 'xpp3'
        exclude group: 'stax', module: 'stax-api'
        exclude group: 'stax', module: 'stax'
    }
Вопрос: Retrofit, JSON, @POST, @GET

Уважаемые программисты, прошу вашей помощи!

Хожу на курсы по разработке мобильных приложений, месяц, как хожу, мало еще что знаю, но дали задание, дополнительное, высокого уровня сложности, попробовать реализовать и чтобы сами учились обучаться... Так вот, задание в том, чтобы сделать простую регистрацию и авторизацию через приложение, данные отправляются на сервер.

Использовать нужно Retrofit, JSON. Библиотеки подключил.
Официальную документацию почитал про Retrofit и JSON, малую суть понял, что к чему... но на практике дело предстоит иначе.

Прилагаю схему JSON объектов с полями для регистрации и авторизации...

Прошу помочь новичку, поэтапно объяснить что к чему...

Я начал делать с регистрацией.
Сделал Interface-класс назвал его ApiService. В нем написал
Java(TM) 2 Platform Standard Edition 5.0
1
2
@POST("/registration")
Call<List<Objects>> regAccount(@Field("email") String email, @Field("passord") String password, @Field("socialIdentifier") String socialIdentifier);
Потом сделал модель RegistrationAccount
Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package vk.com.gorelyh_anatoly.newproject.data.network.restmodels;
 
public class RegistrationAccount {
 
/* объявляем поля */
    private String password;
    private String socialIdentifier; // (can be one of: native, facebook, googlePlus, vk);
    private String email;
 
 /* конструктор */
    public RegistrationAccount(String password, String socialIdentifier, String email) {
        this.password = password;
        this.socialIdentifier = socialIdentifier;
        this.email = email;
    }
 
/* создаем геттеры и сеттеры */
    public String getPassword() {
        return password;
    }
 
    public void setPassword(String password) {
        this.password = password;
    }
 
    public String getSocialIdentifier() {
        return socialIdentifier;
    }
 
    public void setSocialIdentifier(String socialIdentifier) {
        this.socialIdentifier = socialIdentifier;
    }
 
    public String getEmail() {
        return email;
    }
 
    public void setEmail(String email) {
        this.email = email;
    }
 
/* переопределяем метод toString */
    @Override
    public String toString() {
        return "RegistrationAccount{" +
                "email='" + email + '\'' +
                ", password='" + password + '\'' +
                ", socialIdentifier='" + socialIdentifier + '\'' +
                '}';
    }
}
Дальше уже не очень понимаю, что делать дальше...
в MainActivity сделал:
Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// объявляем статическую переменную 
private static final String REG_URL = "http://91.225.109.172:7070/user";
 
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        });
 
        /* Инициализируем наши edit-поля для регистрации */
        EditText mRegEmail = (EditText) findViewById(R.id.reg_email);
        EditText mRegPass = (EditText) findViewById(R.id.reg_password);
 
 
        // ********************* что-то делаем дальше..
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(REG_URL)
                .build();
 
        ApiService apiService = retrofit.create(ApiService.class);
 
    }
Прошу помочь, объяснить, разъяснить доступным и понятным языком... Если возможно, то мог бы платить какую-то сумму, как репетитору... Заранее спасибо!
Ответ:
Сообщение от Mikalai
Rosherh, вот тут про Retrofit всё подробно написано.
Что-то все подробно, но для меня не очень понятно...

Сообщение от YuraAAA
Rosherh, запросы надо делать асинхронно. Это раз. Второе, чтобы Json распарсить можно взять Jackson. Там тоже всё легко
Так, про запросы понял, буду делать асинхронно, про распарсинг подумаю еще...
Вопрос: Retrofit 2. Возвращаемое значение == null

Делаю небольшое приложение для VK. Решил использовать Retrofit 2. Набросал простенький запрос, но в ответ приходит код 200 и null.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public interface ApiInterface {
 
public static final String BASE_URL = "https://api.vk.com/method/";
 
@GET("users.get?user_ids=210700286&v=5.53")
Call<ProfileInfo> getProfileInfo();
 
 
public static final Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
}
Вот что в Activity

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
ApiInterface apiInterface = ApiInterface.retrofit.create(ApiInterface.class);
    Log.d("123", "After RETROFIT CLIENT " + mAccount.getAccessToken());
 
 
 
 
        Call<ProfileInfo> call = apiInterface.getProfileInfo();
        call.enqueue(new Callback<ProfileInfo>() {
            @Override
            public void onResponse(Call<ProfileInfo> call, Response<ProfileInfo> response) {
                Log.d("123", "IN QUERY " + response.code());    /*response.code == 200*/
 
                  ProfileInfo profileInfo = response.body();   /*Возвращает null*/
 
                    Log.d("123", profileInfo.toString());
 
                }
            }
 
            @Override
            public void onFailure(Call<ProfileInfo> call, Throwable t) {
 
            }
        });
Модель

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class ProfileInfo {
 
@SerializedName("id")
public int ID;
@SerializedName("first_name")
public String firstName;
@SerializedName("last_name")
public String lastName;
 
 
 
public String getFirstName() {
    return firstName;
}
 
public void setFirstName(String firstName) {
    this.firstName = firstName;
}
 
public String getLastName() {
    return lastName;
}
 
public void setLastName(String lastName) {
    this.lastName = lastName;
}
 
@Override
public String toString() {
    String s;
    return s= getFirstName() + " " + getLastName();;
}
}
Ответ в виде

JSON
1
2
3
4
5
response: [{
id: 210700286,
first_name: 'Lindsey',
last_name: 'Stirling'
}]
Пробовал через errorBody, приложение крашится.
Ответ:
Сообщение от Rom96
Скажите, выходит, грубо говоря для каждого запроса необходимо делать 2 класса модели? Для самого объекта ответа и для его полей?
Ну так это же зависит от того какой ответ приходит от сервера.
Может быть такой, что потребуется с десяток классов, чтоб Retrofit его корректно распарсил.
Я лично пользуюсь этим сайтом для получения моделей:
Вопрос: Ошибка JSON в Retrofit

Всем привет!
Недавно начал изучение Retrofit как известной библиотеки для REST-запросов. Там всё сильно автоматизировано, например, получение с сайта JSON и преобразование в объект. Допустим даже, что с сервера приходит адекватный JSON, а я нигде не ошибся в параметрах запроса. Но ошибся в структуре класса и, например, вместо массива строк указал просто строку.
Java
1
2
3
4
5
public class RequestObject {
    public int id;
    public String content; // Здесь неправильно указал.
    public String message;
}
В этом случае в обработчике onFailure я получу: java.lang.IllegalStateException: Expected a string but was BEGIN_ARRAY at line 1 column 24 path $.content
Это что, получается, Retrofit за меня решит, что надо прекратить выполнение? А если я, по старинке, хочу распарсить JSON самостоятельно?

Добавлено через 12 минут
Дополнительный вопрос.
На самом деле, там не массив строк, а массив JSON-объектов, это уж я для упрощения сначала написал. Т.е. получаю из запроса большой JSON, который содержит несколько полей и массив других объектов. Так вот, эти JSON-объекты могут меняться в зависимости от запроса. Можно ли использовать Generic'и? пишут, что, вроде бы, можно, но GSON будет по 2 раза распознавать JSON.
Ответ:
Сообщение от fraley
А в чем тогда смысл использовать Retrofit?
Я имею в виду, что ошибка распознавания JSON теоретически может случиться на любом шаге. Что-то не докачалось, не та кодировка, не та структура, вообще не JSON (например, Error ...). В любом случае будет нокаут. А вот когда я раньше сам разбирал JSON, то мог, по крайней мере, понять, где именно случилась ошибка и поставить try-catch. Тут же я должен разобрать в логе, что случилось.
Согласен, тут, наверное, надо побольше поработать с Retrofit, чтобы оценить его преимущества.
Сообщение от fraley
Насколько я понимаю вместо public String content должен быть массив?
Да, конечно. Это я просто пример привёл. Мне-то хотелось сделать generic'и и массив.

Добавлено через 1 час 1 минуту
Небольшой поиск показывает (, , ), что Retrofit - это ахинея. Помимо того, что там сложно вытащить сам URL, по которому обращаешься, получаемый JSON, так ещё и Generic'и для "удобства" не добавлены. В общем, привет, баги и костыли.

Добавлено через 1 час 7 минут
Вроде бы, такой способ помог.
Объявил некий абстрактный класс, пусть будет примерно такой же:
Java
1
2
3
4
public abstract class Request {
    public int id;
    public String message;
}
Другие классы расширяют этот с добавлением того же поля, но разных типов, по вкусу.
Например,
Java
1
2
3
4
5
6
7
public class RequestChild extends Request {
    public SomeClass[] content;
 
    public static class SomeClass {
        // Поля.
    }
}
Вопрос: Android 4.3 все белое

Окно все белое - просто белый экран (на android 4.1.2 все отлично) а на 4.3 косяк

Приложение использует тему под названием NoActionBarIlnar
стиль
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<resources>
    <style name = "NoActionBarIlnar" parent="@style/Theme.AppCompat.Light">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
       <!-- <item name="android:windowFullscreen">true</item> -->
        <item name="android:windowContentOverlay">@null</item>
        <item name="colorPrimary">@color/orange_UI</item>
        <item name="colorPrimaryDark">@color/orange_UI</item>
       <!-- <item name="colorControlNormal">@color/orange_UI_small</item> -->
        <item name="colorControlActivated">@color/colorControlActivated</item>
        <item name="colorControlHighlight">@color/colorControlHighlight</item>
        <item name="colorButtonNormal">@color/orange_UI_small</item>
        <item name="android:spinnerItemStyle">@style/MooSpinnerItem</item>
 
 
    </style>
 
    <style name="MooSpinnerItem" parent="android:Widget.TextView.SpinnerItem">
        <item name="android:textAppearance">@style/MooTextAppearanceSpinnerItem</item>
    </style>
 
    <style name="MooTextAppearanceSpinnerItem" parent="android:TextAppearance.Widget.TextView.SpinnerItem">
        <item name="android:textColor">@color/profile_edit_text_color</item>
    </style>
    <!-- no action bar -->
 
    <!-- MyCustomTheme -->
    <style name="MyCustomTheme" parent="@style/Theme.AppCompat.Light">
        <item name="android:actionBarStyle">@style/MyActionBarTheme</item>
    </style>
 
    <style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:background">#FF5722</item>
    </style>
 
    <style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>
    <!-- MyCustomTheme -->
 
 
 
</resources>
Ответ: Разметка
Кликните здесь для просмотра всего текста

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
 
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/scrollView2"
        android:layout_weight="1">
 
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:padding="10dp">
 
            <ImageView
                android:layout_width="match_parent"
                android:layout_height="250dp"
                android:id="@+id/profilePhoto"
                android:src="@drawable/not_avatar"
                android:background="#c5ccde" />
 
            <LinearLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingTop="10dp"
                android:paddingBottom="10dp">
 
                <RadioGroup
                    android:checkedButton="@+id/rbminnn"
                    android:id="@+id/radioGroup"
                    android:layout_width="match_parent"
                    android:layout_height="30dp"
                    android:background="@drawable/pink_out_line"
                    android:orientation="horizontal"
                    android:layout_marginRight="5dp"
                    android:layout_marginLeft="5dp">
 
                    <RadioButton
                        android:layout_marginTop="1dp"
                        android:layout_marginBottom="1dp"
                        android:layout_marginLeft="1dp"
                        android:id="@+id/rbPassenger"
                        android:background="@drawable/toggle_widget_background"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:button="@null"
                        android:gravity="center"
                        android:text="@string/passenger_text"
                        android:textColor="@drawable/radiogroup_text_color_active_white" />
 
                    <RadioButton
                        android:layout_marginRight="1dp"
                        android:layout_marginTop="1dp"
                        android:layout_marginBottom="1dp"
                        android:id="@+id/rbminnn"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:background="@drawable/toggle_widget_background"
                        android:button="@null"
                        android:gravity="center"
                        android:text="@string/minnn_text"
                        android:textColor="@drawable/radiogroup_text_color_active_white" />
 
                </RadioGroup>
 
            </LinearLayout>
 
            <android.support.v7.widget.AppCompatEditText
                android:textAppearance="@android:style/TextAppearance.Medium"
                android:textColor="@color/profile_edit_text_color"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textCapWords|textPersonName"
                android:ems="10"
                android:id="@+id/firstnameEdit"
                android:hint="@string/firstname_text"
                android:drawableLeft="@drawable/ic_account"/>
 
            <android.support.v7.widget.AppCompatEditText
                android:textAppearance="@android:style/TextAppearance.Medium"
                android:textColor="@color/profile_edit_text_color"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ems="10"
                android:id="@+id/phone_profile"
                android:hint="@string/phone_text"
                android:drawableLeft="@drawable/ic_phone"
                android:inputType="phone"
                android:singleLine="false"
                android:focusable="false"
                android:clickable="false"/>
 
            <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:background="?attr/editTextBackground">
 
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/imageView2"
                android:src="@drawable/ic_city" />
 
            <android.support.v7.widget.AppCompatSpinner
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/profile_city_spinner"
                android:textAppearance="@android:style/TextAppearance.Medium"
                android:textColor="@color/profile_edit_text_color"/>
 
        </LinearLayout>
 
            <LinearLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/minnn_profile">
 
                <android.support.v7.widget.AppCompatEditText
                    android:textAppearance="@android:style/TextAppearance.Medium"
                    android:textColor="@color/profile_edit_text_color"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:inputType="textCapWords|textPersonName"
                    android:ems="10"
                    android:id="@+id/ModelEdit"
                    android:hint="@string/ModelEdit_text"
                    android:drawableLeft="@drawable/ic_"
                    />
 
                <android.support.v7.widget.AppCompatEditText
                    android:textAppearance="@android:style/TextAppearance.Medium"
                    android:textColor="@color/profile_edit_text_color"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:ems="10"
                    android:id="@+id/NumberEdit"
                    android:hint="@string/NumberEdit_text"
                    android:inputType="textCapCharacters"
                    android:drawableLeft="@drawable/ic_numeric"
                    />
 
                <android.support.v7.widget.AppCompatEditText
                    android:textAppearance="@android:style/TextAppearance.Medium"
                    android:textColor="@color/profile_edit_text_color"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:inputType="textCapWords|textPersonName"
                    android:ems="10"
                    android:id="@+id/ColorEdit"
                    android:hint="@string/ColorEdit_text"
                    android:drawableLeft="@drawable/ic_invert_colors"
                    />
 
                <android.support.v7.widget.AppCompatEditText
                    android:textAppearance="@android:style/TextAppearance.Medium"
                    android:textColor="@color/profile_edit_text_color"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:ems="10"
                    android:id="@+id/minnn"
                    android:hint="@string/minnn_text"
                    android:inputType="number|numberDecimal"
                    android:drawableLeft="@drawable/ic_currency_rub"/>
 
                <android.support.v7.widget.AppCompatEditText
                    android:textAppearance="@android:style/TextAppearance.Medium"
                    android:textColor="@color/profile_edit_text_color"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:ems="10"
                    android:id="@+id/balance"
                    android:hint="@string/balance_text"
                    android:inputType="number|numberDecimal"
                    android:drawableLeft="@drawable/ic_cash_100"
                    android:focusable="false"
                    android:clickable="false"
                    android:focusableInTouchMode="false"/>
 
 
                <android.support.v7.widget.AppCompatEditText
                    android:textAppearance="@android:style/TextAppearance.Medium"
                    android:textColor="@color/profile_edit_text_color"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:ems="10"
                    android:id="@+id/passportInfo"
                    android:hint="@string/passportInfo_text"
                    android:drawableLeft="@drawable/ic_account_d_details"/>
 
                <android.support.v7.widget.AppCompatEditText
                    android:textAppearance="@android:style/TextAppearance.Medium"
                    android:textColor="@color/profile_edit_text_color"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:ems="10"
                    android:id="@+id/insurancePolicyInfo"
                    android:hint="@string/insurancePolicyInfo_text"
                    android:drawableLeft="@drawable/ic_hospital"/>
 
                <android.support.v7.widget.AppCompatEditText
                    android:textAppearance="@android:style/TextAppearance.Medium"
                    android:textColor="@color/profile_edit_text_color"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:ems="10"
                    android:id="@+id/minnnLicenseNumberInfo"
                    android:hint="@string/minnnLicenseNumberInfo_text"
                    android:drawableLeft="@drawable/ic_book_open"/>
 
 
                <LinearLayout
                    android:orientation="horizontal"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_vertical"
                    android:background="?attr/editTextBackground">
 
                    <android.support.v7.widget.SwitchCompat
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="@string/_text_minnn"
                        android:id="@+id/_minnn_checkBox"
                        android:textAppearance="@android:style/TextAppearance.Medium"
                        android:drawableLeft="@drawable/ic_readability"
                        android:textColor="@color/profile_edit_text_color"/>
                </LinearLayout>
 
 
 
                <LinearLayout
                    android:orientation="horizontal"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_vertical|center_horizontal"
                    android:background="?attr/editTextBackground">
 
 
                    <RatingBar
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/profile_rateBar"
                        android:stepSize="0.1"
                        android:isIndicator="true"
                        android:clickable="false"
                        android:focusableInTouchMode="false"
                        android:focusable="false"
                        android:max="5"/>
                </LinearLayout>
 
 
                <LinearLayout
                    android:orientation="horizontal"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:id="@+id/profile_minnn_document_Linear"
                    android:gravity="center_vertical"
                    android:background="?attr/editTextBackground"
                    android:focusable="false"
                    android:clickable="false"
                    android:focusableInTouchMode="false">
 
                    <ImageView
                        android:layout_width="100dp"
                        android:layout_height="100dp"
                        android:id="@+id/profile_minnn_document_imageView"
                        android:src="@drawable/document" />
 
                    <android.support.v7.widget.AppCompatTextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="@string/minnn_document"
                        android:id="@+id/textView4"
                        android:layout_marginLeft="@dimen/linearRightMargin"
                        android:textAppearance="@android:style/TextAppearance.Medium"
                        android:textColor="@color/profile_edit_text_color"/>
                </LinearLayout>
 
            </LinearLayout>
 
        </LinearLayout>
    </ScrollView>
 
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical|center_horizontal"
        android:paddingLeft="10dp"
        android:paddingRight="10dp">
 
 
    </LinearLayout>
    <android.support.v7.widget.AppCompatTextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/save_text"
        android:id="@+id/save_profile"
        android:maxHeight="?attr/actionBarSize"
        android:minHeight="?attr/actionBarSize"
        android:gravity="center_vertical|center_horizontal"
        android:textAppearance="@android:style/TextAppearance.Large"
        android:textColor="@color/white"
        android:background="@color/textViewButtonBG"/>
 
</LinearLayout>


Добавлено через 2 часа 8 минут
Решено. Баг исчез - хз из-за чего был
Вопрос: Вылет приложения сделанного на Android Studio

Здравствуйте! Создал проект на AndroidStudio, создал apk. Скинул на телефон, установил... При запуске программы, она тут же закрывается и появляется ошибка. Java практически не знаю, так что подскажите, может дело в коде? Какие варианты решения проблемы?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package com.example.jv.formula;
 
 
import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.view.View;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
 
public class Formula extends AppCompatActivity implements View.OnClickListener {
 
    private EditText mE1;
    private EditText mE2;
    private EditText mE3;
    private EditText mE4;
    private EditText mE5;
    private EditText mE6;
    private EditText mE7;
    private Button mB1;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.formula);
 
        mE1 = (EditText) findViewById(R.id.editText);
        mE2 = (EditText) findViewById(R.id.editText2);
        mE3 = (EditText) findViewById(R.id.editText3);
        mE4 = (EditText) findViewById(R.id.editText4);
        mE5 = (EditText) findViewById(R.id.editText5);
        mE6 = (EditText) findViewById(R.id.editText6);
        mE7 = (EditText) findViewById(R.id.editText7);
        mB1.setOnClickListener(this);
    }
 
    public void onClick(View v) {
 
        //Вводим переменные, с которыми будем оперировать:
        float value1 = 0;
        float value2 = 0;
        float value3 = 0;
        float value4 = 0;
        float value5 = 0;
        float value6 = 0;
        double result = 0;
        float g = 0;
 
        //Принимаем значения для value1 и value2 с элементов ввода:
        value1 = Float.parseFloat(mE1.getText().toString());
        value2 = Float.parseFloat(mE2.getText().toString());
        value3 = Float.parseFloat(mE3.getText().toString());
        value4 = Float.parseFloat(mE4.getText().toString());
        value5 = Float.parseFloat(mE5.getText().toString());
        value6 = Float.parseFloat(mE6.getText().toString());
        g=(value4 * value2 / 10) + ((value6 + value1 - value2) / (1000 + value5 - value3));
        result = -(value3 / 2) + Math.sqrt(g);
        mE7.setText("" + result);
 
    }
}
Ответ: ExFau$t, Вот:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/formula"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.jv.formula.Formula">
 
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:ems="10"
        android:layout_marginTop="14dp"
        android:id="@+id/editText"
        android:text="0"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_marginEnd="59dp" />
 
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text="0"
        android:ems="10"
        android:id="@+id/editText2"
        android:layout_below="@+id/editText"
        android:layout_alignStart="@+id/editText"
        android:layout_marginTop="13dp" />
 
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text="0"
        android:ems="10"
        android:layout_below="@+id/editText2"
        android:layout_alignStart="@+id/editText2"
        android:layout_marginTop="13dp"
        android:id="@+id/editText3" />
 
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text="0"
        android:ems="10"
        android:layout_below="@+id/editText3"
        android:layout_alignStart="@+id/editText3"
        android:layout_marginTop="11dp"
        android:id="@+id/editText4" />
 
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text="0"
        android:ems="10"
        android:layout_below="@+id/editText4"
        android:layout_alignStart="@+id/editText4"
        android:layout_marginTop="14dp"
        android:id="@+id/editText5" />
 
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text="0"
        android:ems="10"
        android:layout_below="@+id/editText5"
        android:layout_alignStart="@+id/editText5"
        android:layout_marginTop="9dp"
        android:id="@+id/editText6" />
 
    <Button
        android:text="Посчитать"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText6"
        android:layout_marginTop="8dp"
        android:id="@+id/button"
        android:layout_alignParentStart="true"
        android:layout_alignParentEnd="true" />
 
    <TextView
        android:text="R -"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/editText5"
        android:layout_alignStart="@+id/textView4"
        android:layout_marginTop="11dp"
        android:id="@+id/textView5" />
 
    <TextView
        android:text="p -"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/editText6"
        android:layout_alignEnd="@+id/textView5"
        android:layout_marginTop="9dp"
        android:id="@+id/textView6" />
 
    <TextView
        android:text="x ="
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button"
        android:layout_alignEnd="@+id/textView6"
        android:layout_marginTop="20dp"
        android:id="@+id/textView7" />
 
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text="0"
        android:ems="10"
        android:id="@+id/editText7"
        android:layout_alignBaseline="@+id/textView7"
        android:layout_alignBottom="@+id/textView7"
        android:layout_alignStart="@+id/editText6" />
 
    <TextView
        android:text="l -"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="25dp"
        android:id="@+id/textView"
        android:layout_alignBaseline="@+id/editText"
        android:layout_alignBottom="@+id/editText"
        android:layout_alignParentStart="true" />
 
    <TextView
        android:text="h -"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView2"
        android:layout_alignBaseline="@+id/editText2"
        android:layout_alignBottom="@+id/editText2"
        android:layout_alignStart="@+id/textView" />
 
    <TextView
        android:text="d -"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView4"
        android:layout_alignBaseline="@+id/editText4"
        android:layout_alignBottom="@+id/editText4"
        android:layout_alignStart="@+id/textView3" />
 
    <TextView
        android:text="a -"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView3"
        android:layout_alignBaseline="@+id/editText3"
        android:layout_alignBottom="@+id/editText3"
        android:layout_alignStart="@+id/textView2" />
</RelativeLayout>
Добавлено через 44 минуты
Ошибку нашёл, дробные числа надо было вводить через . а не ,
Вопрос: Клиент Android не коннектится к Серверу пк

Клиент Android не коннектится к Серверу ПК.

Сервер:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import java.io.*;
import java.net.*;
 
public class Server {
 
    public static void main(String[] args) throws IOException {
        System.out.println("Welcome to Server side");
        BufferedReader in = null;
        PrintWriter    out= null;
 
        ServerSocket servers = null;
        Socket       fromclient = null;
        Socket       fromclient2 = null;
 
        // create server socket
        try {
            servers = new ServerSocket(4444);
        } catch (IOException e) {
            System.out.println("Couldn't listen to port 4444");
            System.exit(-1);
        }
 
        try {
            System.out.print("Waiting for a 1 client...");
            fromclient = servers.accept();
            System.out.println("Client connected");
            System.out.print("Waiting for a 2 client...");
            fromclient2 = servers.accept();
            System.out.println("Client connected");
        } catch (IOException e) {
            System.out.println("Can't accept");
            System.exit(-1);
        }
 
        in  = new BufferedReader(new
                InputStreamReader(fromclient.getInputStream()));
        out = new PrintWriter(fromclient2.getOutputStream(),true);
        String         input,output;
 
        System.out.println("Wait for messages");
        while ((input = in.readLine()) != null) {
            if (input.equalsIgnoreCase("exit")) break;
            out.println("S ::: "+input);
            System.out.println(input);
        }
        out.close();
        in.close();
        fromclient.close();
        servers.close();
    }
}
Клиент:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package vershiloandrey.clientandroid;
 
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
 
import com.google.android.gms.appindexing.Action;
import com.google.android.gms.appindexing.AppIndex;
import com.google.android.gms.common.api.GoogleApiClient;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
 
public class MainActivity extends AppCompatActivity implements Runnable{
 
    /**
     * ATTENTION: This was auto-generated to implement the App Indexing API.
     * See [url]https://g.co/AppIndexing/AndroidStudio[/url] for more information.
     */
    private GoogleApiClient client;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.activity_main);
 
        final Button[] buttonArray = {
                (Button) findViewById(R.id.button1),
                (Button) findViewById(R.id.button2),
                (Button) findViewById(R.id.button3),
                (Button) findViewById(R.id.button4),
                (Button) findViewById(R.id.button5),
                (Button) findViewById(R.id.button6),
                (Button) findViewById(R.id.button7)
        };
 
        int i = 0;
        final int ifinal = i;
        buttonArray[i].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                buttonArray[ifinal].setText("o");
                try {
                    connecting();
                }catch(IOException e){
 
                }
            }
        });
 
        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See [url]https://g.co/AppIndexing/AndroidStudio[/url] for more information.
        client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
    }
 
    public void connecting() throws IOException {
 
        //System.out.println("Welcome to Client side");
        run();
    }
 
    @Override
    public void onStart() {
        super.onStart();
 
        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See [url]https://g.co/AppIndexing/AndroidStudio[/url] for more information.
        client.connect();
        Action viewAction = Action.newAction(
                Action.TYPE_VIEW, // TODO: choose an action type.
                "Main Page", // TODO: Define a title for the content shown.
                // TODO: If you have web page content that matches this app activity's content,
                // make sure this auto-generated web page URL is correct.
                // Otherwise, set the URL to null.
                Uri.parse("http://host/path"),
                // TODO: Make sure this auto-generated app URL is correct.
                Uri.parse("android-app://vershiloandrey.clientandroid/http/host/path")
        );
        AppIndex.AppIndexApi.start(client, viewAction);
    }
 
    @Override
    public void onStop() {
        super.onStop();
 
        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See [url]https://g.co/AppIndexing/AndroidStudio[/url] for more information.
        Action viewAction = Action.newAction(
                Action.TYPE_VIEW, // TODO: choose an action type.
                "Main Page", // TODO: Define a title for the content shown.
                // TODO: If you have web page content that matches this app activity's content,
                // make sure this auto-generated web page URL is correct.
                // Otherwise, set the URL to null.
                Uri.parse("http://host/path"),
                // TODO: Make sure this auto-generated app URL is correct.
                Uri.parse("android-app://vershiloandrey.clientandroid/http/host/path")
        );
        AppIndex.AppIndexApi.end(client, viewAction);
        client.disconnect();
    }
 
    public void run(){
        try {
            Socket fromserver = null;
            fromserver = new Socket("192.168.0.104", 4444);
            BufferedReader in = new BufferedReader(new InputStreamReader(fromserver.getInputStream()));
            PrintWriter out = new PrintWriter(fromserver.getOutputStream(), true);
            BufferedReader inu;
            inu = new BufferedReader(new InputStreamReader(System.in));
 
            String fuser, fserver;
 
            while ((fuser = inu.readLine()) != null) {
                out.println(fuser);
                fserver = in.readLine();
                System.out.println(fserver);
                if (fuser.equalsIgnoreCase("close")) break;
                if (fuser.equalsIgnoreCase("exit")) break;
            }
 
            out.close();
            in.close();
            inu.close();
            fromserver.close();
        }catch(IOException e){
            System.out.println("rtr");
        }
    }
}
В AndroidManifest вписал только эту строчку
Java
1
<uses-permission  android:name = "android.permission.INTERNET"  />
У меня не получается приконнектится к серверу с клиента. Похоже, дело в адресе... Но после строки
Java
1
  fromserver = new Socket("192.168.0.104", 4444);
fromsetver = null и программа завершается...
Ответ: Паблито,

манифест
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="vershiloandrey.clientandroid" >
 
    <uses-permission  android:name = "android.permission."  />
    <uses-permission  android:name = "android.permission.ACCESS_FINE_LOCATION"  />
    <uses-permission  android:name = "android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"  />
    <uses-permission  android:name = "android.permission.ACCESS_COARSE_LOCATION"  />
    <uses-permission  android:name = "com.example.towntour.permission.MAPS_RECEIVE"  />
    <uses-permission  android:name = "android.permission.ACCESS_NETWORK_STATE"  />
    <uses-permission  android:name = "android.permission.CALL_PHONE"  />
    <uses-permission  android:name = "android.permission.READ_PHONE_STATE"  />
    <uses-permission  android:name = "com.google.android.providers.gsf.permission.READ_GSERVICES"  />
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        <activity android:name=".MainActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity><!-- ATTENTION: This was auto-generated to add Google Play services to your project for
     App Indexing.  See [url]https://g.co/AppIndexing/AndroidStudio[/url] for more information. -->
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
    </application>
 
</manifest>
А ошибки нет, клиент вроде коннектится, но сервер не видит его...
Вопрос: Авторизация Android ошибки

Крашится приложение после того, как я нажимаю кнопку войти в LoginActivity, в этом деле я новичек и делал всё руководствуюсь статьями из сети. В чем причина краша?

LoginActivity
Кликните здесь для просмотра всего текста
Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
 
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
 
import java.util.ArrayList;
import java.util.List;
 
public class Login extends Activity {
 
    public static String URL_LOGIN = "localhost/Auth.php";
 
    EditText etLogin;
    EditText etPassword;
    Button btnLogin;
    List<NameValuePair> params;
    SharedPreferences sharedPreferences;
    ServerRequest serverRequest;
 
 
    @Override
    protected void onCreate(final Bundle savedInstanceState) {
 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
 
        serverRequest = new ServerRequest();
 
        etLogin = (EditText) findViewById(R.id.etLogin);
        etPassword = (EditText) findViewById(R.id.etPassword);
 
        btnLogin = (Button) findViewById(R.id.btnLogin);
 
        btnLogin.setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View v) {
 
                String email = etLogin.getText().toString();
                String password = etPassword.getText().toString();
                params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("email", email));
                params.add(new BasicNameValuePair("password", password));
                ServerRequest serverRequest = new ServerRequest();
                JSONObject jsonObject = serverRequest.getJSON(URL_LOGIN);
                if(jsonObject != null) {
 
                    try {
 
                        String jsonstr = jsonObject.getString("response");
                        if (jsonObject.getBoolean("res")){
                            String token = jsonObject.getString("token");
                            SharedPreferences.Editor editor = sharedPreferences.edit();
                            editor.putString("token", token);
                            editor.apply();
                            Intent intent = new Intent(Login.this,Main.class);
                            startActivity(intent);
                            finish();
                        }
 
                        Toast.makeText(getApplication(),jsonstr,Toast.LENGTH_LONG).show();
 
                    }
 
                    catch (JSONException e) {
 
                        e.printStackTrace();
 
                    }
                }
 
            }
 
        });
 
    }
 
}


ServerRequest
Кликните здесь для просмотра всего текста
Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import android.os.AsyncTask;
import android.util.Log;
 
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;
import java.util.concurrent.ExecutionException;
 
public class ServerRequest {
 
    static InputStream is = null;
    static JSONObject jObj = null;
    static String json = "";
    List<NameValuePair> params;
 
 
    public ServerRequest() {
 
    }
 
    public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) {
 
 
        try {
 
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            httpPost.setEntity(new UrlEncodedFormEntity(params));
 
            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();
 
        } catch (IOException e) {
            e.printStackTrace();
        }
 
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line).append("n");
            }
            is.close();
            json = sb.toString();
            Log.e("JSON", json);
        } catch (Exception e) {
            Log.e("Buffer Error", "Error converting result " + e.toString());
        }
 
 
        try {
            jObj = new JSONObject(json);
        } catch (JSONException e) {
            Log.e("JSON Parser", "Error parsing data " + e.toString());
        }
 
 
        return jObj;
 
    }
    JSONObject jobj;
    public JSONObject getJSON(String url) {
 
        Params param = new Params(url,params);
        Request myTask = new Request();
        try{
            jobj= myTask.execute(param).get();
        }catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }
        return jobj;
    }
 
 
    private static class Params {
        String url;
        List<NameValuePair> params;
 
 
        Params(String url, List<NameValuePair> params) {
            this.url = url;
            this.params = params;
 
        }
    }
 
    private class Request extends AsyncTask<Params, String, JSONObject> {
 
        @Override
        protected JSONObject doInBackground(Params... args) {
 
            ServerRequest request = new ServerRequest();
 
            return request.getJSONFromUrl(args[0].url,args[0].params);
        }
 
        @Override
        protected void onPostExecute(JSONObject json) {
 
            super.onPostExecute(json);
 
        }
 
    }
}


Log

Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
04-09 18:28:19.189 16849-16849/? I/art: Late-enabling -Xcheck:jni
04-09 18:28:19.661 16849-16885/com.dpa7dujijiepgmail.app I/OpenGLRenderer: Initialized EGL, version 1.4
04-09 18:28:19.661 16849-16885/com.dpa7dujijiepgmail.app W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
04-09 18:28:27.198 16849-16849/com.dpa7dujijiepgmail.app W/IInputConnectionWrapper: beginBatchEdit on inactive InputConnection
04-09 18:28:27.198 16849-16849/com.dpa7dujijiepgmail.app W/IInputConnectionWrapper: endBatchEdit on inactive InputConnection
04-09 18:28:30.577 16849-16849/com.dpa7dujijiepgmail.app W/System.err: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.util.List.iterator()' on a null object reference
04-09 18:28:30.580 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at java.util.concurrent.FutureTask.report(FutureTask.java:93)
04-09 18:28:30.580 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at java.util.concurrent.FutureTask.get(FutureTask.java:163)
04-09 18:28:30.580 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at android.os.AsyncTask.get(AsyncTask.java:483)
04-09 18:28:30.580 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at com.dpa7dujijiepgmail.diplom.ServerRequest.getJSON(ServerRequest.java:83)
04-09 18:28:30.580 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at com.dpa7dujijiepgmail.diplom.Login$1.onClick(Login.java:56)
04-09 18:28:30.580 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at android.view.View.performClick(View.java:4756)
04-09 18:28:30.580 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at android.view.View$PerformClick.run(View.java:19761)
04-09 18:28:30.580 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at android.os.Handler.handleCallback(Handler.java:739)
04-09 18:28:30.580 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
04-09 18:28:30.580 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at android.os.Looper.loop(Looper.java:135)
04-09 18:28:30.580 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5253)
04-09 18:28:30.580 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
04-09 18:28:30.580 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at java.lang.reflect.Method.invoke(Method.java:372)
04-09 18:28:30.580 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:949)
04-09 18:28:30.581 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:744)
04-09 18:28:30.581 16849-16849/com.dpa7dujijiepgmail.app W/System.err: Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.util.List.iterator()' on a null object reference
04-09 18:28:30.583 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at org.apache.http.client.utils.URLEncodedUtils.format(URLEncodedUtils.java:160)
04-09 18:28:30.583 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at org.apache.http.client.entity.UrlEncodedFormEntity.<init>(UrlEncodedFormEntity.java:71)
04-09 18:28:30.583 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at com.dpa7dujijiepgmail.diplom.ServerRequest.getJSONFromUrl(ServerRequest.java:41)
04-09 18:28:30.583 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at com.dpa7dujijiepgmail.diplom.ServerRequest$Request.doInBackground(ServerRequest.java:110)
04-09 18:28:30.583 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at com.dpa7dujijiepgmail.diplom.ServerRequest$Request.doInBackground(ServerRequest.java:103)
04-09 18:28:30.583 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:288)
04-09 18:28:30.583 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-09 18:28:30.583 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
04-09 18:28:30.583 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
04-09 18:28:30.583 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
04-09 18:28:30.583 16849-16849/com.dpa7dujijiepgmail.app W/System.err:     at java.lang.Thread.run(Thread.java:818)
04-09 18:28:30.585 16849-16983/com.dpa7dujijiepgmail.app E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #5
                                                                              Process: com.dpa7dujijiepgmail.app, PID: 16849
                                                                              java.lang.RuntimeException: An error occured while executing doInBackground()
                                                                                  at android.os.AsyncTask$3.done(AsyncTask.java:300)
                                                                                  at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
                                                                                  at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
                                                                                  at java.util.concurrent.FutureTask.run(FutureTask.java:242)
                                                                                  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
                                                                                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                                                                                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                                                  at java.lang.Thread.run(Thread.java:818)
                                                                               Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.util.List.iterator()' on a null object reference
                                                                                  at org.apache.http.client.utils.URLEncodedUtils.format(URLEncodedUtils.java:160)
                                                                                  at org.apache.http.client.entity.UrlEncodedFormEntity.<init>(UrlEncodedFormEntity.java:71)
                                                                                  at com.dpa7dujijiepgmail.app.ServerRequest.getJSONFromUrl(ServerRequest.java:41)
                                                                                  at com.dpa7dujijiepgmail.app.ServerRequest$Request.doInBackground(ServerRequest.java:110)
                                                                                  at com.dpa7dujijiepgmail.app.ServerRequest$Request.doInBackground(ServerRequest.java:103)
                                                                                  at android.os.AsyncTask$2.call(AsyncTask.java:288)
                                                                                  at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)*
                                                                                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)*
                                                                                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)*
                                                                                  at java.lang.Thread.run(Thread.java:818)*
04-09 18:31:29.992 16849-16849/com.dpa7dujijiepgmail.app W/IInputConnectionWrapper: beginBatchEdit on inactive InputConnection
04-09 18:31:29.993 16849-16849/com.dpa7dujijiepgmail.app W/IInputConnectionWrapper: finishComposingText on inactive InputConnection
04-09 18:31:29.993 16849-16849/com.dpa7dujijiepgmail.app W/IInputConnectionWrapper: endBatchEdit on inactive InputConnection
Ответ:
Сообщение от YuraAAA
params null
Да, действительно немного подредактировал и всё встало на свои места. Но теперь я столкнулся с другой проблемой, при попытке авторизоваться, запрос доходит до сервера и возвращается токен (это видно в логе), но далее идут непонятные мне ошибки.

Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
04-10 10:09:43.469 1086-1305/com.dpa7dujijiepgmail.diplom E/JSON: {"status":"OK","token":"6839f91efb7e0061847edab095eae5105704268021cd2be5018b4567"}n
04-10 10:09:43.473 1086-1086/com.dpa7dujijiepgmail.app W/System.err: org.json.JSONException: No value for response
04-10 10:09:43.497 1086-1086/com.dpa7dujijiepgmail.app W/System.err:     at org.json.JSONObject.get(JSONObject.java:354)
04-10 10:09:43.497 1086-1086/com.dpa7dujijiepgmail.app W/System.err:     at org.json.JSONObject.getString(JSONObject.java:510)
04-10 10:09:43.497 1086-1086/com.dpa7dujijiepgmail.app W/System.err:     at com.dpa7dujijiepgmail.app.Login$1.onClick(Login.java:61)
04-10 10:09:43.497 1086-1086/com.dpa7dujijiepgmail.app W/System.err:     at android.view.View.performClick(View.java:4084)
04-10 10:09:43.497 1086-1086/com.dpa7dujijiepgmail.app W/System.err:     at android.view.View$PerformClick.run(View.java:16966)
04-10 10:09:43.497 1086-1086/com.dpa7dujijiepgmail.app W/System.err:     at android.os.Handler.handleCallback(Handler.java:615)
04-10 10:09:43.497 1086-1086/com.dpa7dujijiepgmail.app W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:92)
04-10 10:09:43.497 1086-1086/com.dpa7dujijiepgmail.app W/System.err:     at android.os.Looper.loop(Looper.java:137)
04-10 10:09:43.497 1086-1086/com.dpa7dujijiepgmail.app W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:4745)
04-10 10:09:43.497 1086-1086/com.dpa7dujijiepgmail.app W/System.err:     at java.lang.reflect.Method.invokeNative(Native Method)
04-10 10:09:43.497 1086-1086/com.dpa7dujijiepgmail.app W/System.err:     at java.lang.reflect.Method.invoke(Method.java:511)
04-10 10:09:43.497 1086-1086/com.dpa7dujijiepgmail.app W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
04-10 10:09:43.497 1086-1086/com.dpa7dujijiepgmail.app W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
04-10 10:09:43.497 1086-1086/com.dpa7dujijiepgmail.app W/System.err:     at dalvik.system.NativeStart.main(Native Method)


Добавлено через 9 часов 6 минут
Сообщение от Dpa7DuJIJIep
Да, действительно немного подредактировал и всё встало на свои места. Но теперь я столкнулся с другой проблемой, при попытке авторизоваться, запрос доходит до сервера и возвращается токен (это видно в логе), но далее идут непонятные мне ошибки.
Ошибку я нашел. Спасибо YuraAAA за ответ на предыдущий вопрос.
Вопрос: Код получения MAC адреса wifi на android 6

Привет.
Нагуглил код



MAC действительно получаю на android 6, но 100% ли это рабочий код на всех шестёрках?
Есть у кого проблемы с этим кодом, может он подвести?

Если кто может сделать тесты на своём устройстве буду благодарен.

Добавлено через 16 минут
ASUS ZenFone 2 отдаёт mac нормально
Ответ:
Сообщение от Паблито
показать свой код и объяснить что такое "не помагло" и как это выглядит, не?
Упс... сп%$дел этот робит
Java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.example.jerryletehen.wifitest;
 
import android.content.Context;
import android.net.wifi.WifiManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
public class MainActivity extends AppCompatActivity {
    String wifi;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final TextView test = (TextView)findViewById(R.id.test);
        final Button btn = (Button)findViewById(R.id.button);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                WifiManager wmgr = (WifiManager)getSystemService(Context.WIFI_SERVICE);
                wifi = wmgr.getConnectionInfo().getMacAddress();
                test.setText(wifi);
            }
        });
    }
}

XML
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.jerryletehen.wifitest">
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>
Вопрос: Как подключиться к удаленной бд в Android studio

Есть сайт с бд phpmyadmin, хочу подключиться из Android studio к удаленной бд phpmy admin, помогите найти в чем не прав

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
    public static final String username = "ilandper_lewan";
    public static final String password = "*******";
    public static final String url = "jdbc:mysql://88.212.247.188:3306/ilandper_database";
 
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        connect();
    }
 
 
    public void connect()
    {
 
        Connection connection = null;
 
        try{
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            System.out.println("_________________________CONNENT___________________________");
        }catch(Exception e){
            System.err.println("Cannot create connection-------------------------------------");
        }
 
        try{
            connection = DriverManager.getConnection(url,username,password);
            Statement statement = connection.createStatement();
            System.out.println("_________________________SUCCESS__________________________");
 
        }catch(Exception e){
            System.err.println("-----------------------Error--------------------");
        }
 
    }
09-30 21:57:02.348 10544-10544/? I/zygote: Not late-enabling -Xcheck:jni (already on)
09-30 21:57:02.397 10544-10544/? W/zygote: Unexpected CPU variant for X86 using defaults: x86
09-30 21:57:03.098 10544-10551/com.example.golden.myapplication2 W/zygote: Suspending all threads took: 6.690ms
09-30 21:57:03.270 10544-10544/com.example.golden.myapplication2 I/System.out: _________________________CONNENT___________________________
09-30 21:57:03.425 10544-10549/com.example.golden.myapplication2 I/zygote: Do partial code cache collection, code=30KB, data=19KB
09-30 21:57:03.533 10544-10549/com.example.golden.myapplication2 I/zygote: After code cache collection, code=23KB, data=19KB
09-30 21:57:03.533 10544-10549/com.example.golden.myapplication2 I/zygote: Increasing code cache capacity to 128KB
09-30 21:57:03.668 10544-10549/com.example.golden.myapplication2 I/zygote: Do partial code cache collection, code=60KB, data=38KB
09-30 21:57:03.668 10544-10549/com.example.golden.myapplication2 I/zygote: After code cache collection, code=55KB, data=37KB
09-30 21:57:03.668 10544-10549/com.example.golden.myapplication2 I/zygote: Increasing code cache capacity to 256KB
09-30 21:57:03.668 10544-10544/com.example.golden.myapplication2 W/System.err: -----------------------Error--------------------
09-30 21:57:03.710 10544-10585/com.example.golden.myapplication2 D/OpenGLRenderer: HWUI GL Pipeline

[ 09-30 21:57:03.814 10544:10585 D/ ]
HostConnection::get() New Host Connection established 0x9a9e4600, tid 10585
09-30 21:57:03.926 10544-10585/com.example.golden.myapplication2 I/OpenGLRenderer: Initialized EGL, version 1.4
09-30 21:57:03.926 10544-10585/com.example.golden.myapplication2 D/OpenGLRenderer: Swap behavior 1
09-30 21:57:03.930 10544-10585/com.example.golden.myapplication2 W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
09-30 21:57:03.930 10544-10585/com.example.golden.myapplication2 D/OpenGLRenderer: Swap behavior 0
09-30 21:57:03.936 10544-10585/com.example.golden.myapplication2 D/EGL_emulation: eglCreateContext: 0xa83a18c0: maj 2 min 0 rcv 2
09-30 21:57:03.939 10544-10585/com.example.golden.myapplication2 D/EGL_emulation: eglMakeCurrent: 0xa83a18c0: ver 2 0 (tinfo 0x9a9c4730)

[ 09-30 21:57:03.964 10544:10585 D/ ]
SurfaceInterface::setAsyncMode: set async mode 1
09-30 21:57:03.969 10544-10585/com.example.golden.myapplication2 D/EGL_emulation: eglMakeCurrent: 0xa83a18c0: ver 2 0 (tinfo 0x9a9c4730)
Ответ: подключаюсь с помощью HttpClient , но как я понял его лучше не использовать так как старый. Работает с API не ниже 19 вроде. Попробуйте лучше HttpUrlConnection (сам не юзал). Так же на серваке нужно обработать подключения, сделал на php

MainActivity

В главное нити не запускается! нужно создавать
Если не прав помогите разобраться, буду благодарен

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package com.example.golden.db_away;
 
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
 
import java.util.ArrayList;
 
public class MainActivity extends ActionBarActivity {
 
    zapros zapros = new zapros();
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
    }
 
    public void myClick(View view)
    {
        EditText text_id = (EditText)findViewById(R.id.editText);
 
        Toast.makeText(this, "Зачем вы нажали?", Toast.LENGTH_SHORT).show();
        zapros.param = "http://site.ru/file.php?id="+text_id.getText().toString();
 
        Thread thread = new Thread(zapros);
        thread.start();
 
        try {
 
            //Thread.currentThread().join();
 
            if (thread.isAlive()) System.out.println("working");
            else System.out.println("wait_close");
            //myThread.thread.join();
 
            while (thread.isAlive()) {
                //wait
            }
 
            ArrayList<String> names = new ArrayList<>();
 
 
            ArrayList<ArrayList<String>> lists = new ArrayList<ArrayList<String>>(zapros.arrayLists());
 
            for(int i = 0;i < lists.size();i++)
            {
                names.add(lists.get(i).get(0));
            }
 
 
 
            // находим список
            ListView lvMain = (ListView) findViewById(R.id.lvMain);
 
            // создаем адаптер
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, names);
 
            // присваиваем адаптер списку
            lvMain.setAdapter(adapter);
 
 
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
 
        if (thread.isAlive()) System.out.println("yet_working");
        else System.out.println("close");
    }
 
 
 
}
class zapros

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package com.example.golden.db_away;
 
import android.util.Log;
 
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONObject;
 
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
 
 
public class zapros extends Thread
{
 
    String name = "111";
    InputStream is = null;
    String result = null;
    String line = null;
    String param;
    int id;
 
 
 
  static   ArrayList<ArrayList<String>> lists ;
    ArrayList<String> list ;
 
 
 
    @Override
    public void run()
    {
 
        Log.e("RUN-_________", "start");
        // создаем лист для отправки запросов
        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
 
        try {
            HttpClient httpclient = new DefaultHttpClient();
//          HttpPost httppost = new HttpPost("http://site.ru/file.php");
            HttpPost httppost = new HttpPost(param);
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
            Log.e("pass 1", "connection success ");
 
 
        } catch (Exception e) {
 
            Log.e("Fail 1", e.toString());
        }
 
        // получаем ответ от php запроса в формате json
        try
        {
            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8);
            StringBuilder sb = new StringBuilder();
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            result = sb.toString();
            Log.e("pass 2", "connection success" + result);
 
        } catch (Exception e)
        {
 
            Log.e("Fail 2", e.toString());
        }
 
        // обрабатываем полученный json
        try
        {
 
            lists = new ArrayList<ArrayList<String>>();
 
            JSONArray jsonarray = new JSONArray(result);
 
            for (int i = 0; i < jsonarray.length(); i++) {
                list = new ArrayList<>();
                list.clear();
                JSONObject jsonobject = jsonarray.getJSONObject(i);
                name = jsonobject.getString("name");
                id = jsonobject.getInt("id");
 
                list.add(name);
                list.add(Integer.toString(id));
                lists.add(i,list);
 
                Log.e("pass 3",name);
 
 
            }
 
            Log.e("RUN___", "end...");
 
            try {
                if(this.isAlive())
                {
                    Log.e("RUN___", "working...");
                }
 
 
            }catch (Exception e)
            {
                Log.e("test",e.getMessage());
            }
 
 
        }
        catch(Exception e)
        {
            Log.e("Fail 3", e.toString());
        }
 
    }
 
    public ArrayList<ArrayList<String>> arrayLists()
    {
        return lists;
    }
 
}
simple_list_item_1.mxl
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
androidaddingLeft="6dip"
android:minHeight="?android:attr/listPreferredItemHeight">
</TextView>


——————————
activity_main_xml
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
/>

<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="myClick"
android:text="Button"/>

<ListView
android:id="@+id/lvMain"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>

</LinearLayout>

Буду благодарен если кто подскажет как будет лучше создавать подключения к УДАЛЕННОЙ БД и как лучше обрабатывать