Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: 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>

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

Столкнулся с проблемой - скачивание данных с ММС Центра
Я получаю заголовки и из них извлекаю url хранения ммс и адрес отправителя.
Затем пытаюсь по http скачать данные по url который достал из заголовка.
Но мне возвращается IOException Time Out. 
Почему я не могу скачать ммску, стандартное приложение получает ММС.

Ниже код моего ресивера:
Код


import android.content.BroadcastReceiver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import com.android.mms.transaction.HttpUtils;
import com.android.mms.util.SendingProgressTokenManager;
import com.google.android.mms.pdu_alt.*;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
* Created by Ed on 02.10.2014.
*/

public class MMSReceiver extends BroadcastReceiver {

        Context context;
        ConnectivityManager manager;

        public void onReceive(final Context context, Intent intent) {
                this.context = context;
                Bundle bundle = intent.getExtras();
                manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

                byte[] buffer = bundle.getByteArray("data");
                GenericPdu genericPdu = new PduParser(buffer).parse();
                ContentValues vl = getParams(genericPdu);
                final String contentLocation = vl.getAsString("ct_l");

                new Thread(new Runnable() {
                        @Override
                        public void run() {
                                try {
                                        ensureRouteToHost(context, contentLocation,  "10.10.10.10");
                                        byte[] rawPdu = HttpUtils.httpConnection(context, SendingProgressTokenManager.NO_TOKEN, contentLocation, null, HttpUtils.HTTP_GET_METHOD, true, "10.10.10.10", 8080); // ЗДЕСЬ <====================

                                        Log.i("mLogs", "DATA :" + rawPdu.length);
                                } catch (IOException e) {
                                        e.printStackTrace();
                                }
                        }
                }).start();

        }

        public static void ensureRouteToHost(Context context, String url, String proxy) throws IOException {
                ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
                connMgr.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE_HIPRI, "enableMMS");

                int inetAddr;
                if (proxy != null && !proxy.equals("")) {
                        String proxyAddr = proxy;
                        inetAddr = lookupHost(proxyAddr);
                        if (inetAddr == -1) {
                                Log.i("mLogs", "Cannot establish route for " + url + ": Unknown host");
                        } else {
                                if (!connMgr.requestRouteToHost(ConnectivityManager.TYPE_MOBILE_MMS, inetAddr)) {
                                        Log.i("mLogs","Cannot establish route to proxy " + inetAddr);
                                }
                        }
                } else {
                        Uri uri = Uri.parse(url);
                        inetAddr = lookupHost(uri.getHost());
                        if (inetAddr == -1) {
                                throw new IOException("Cannot establish route for " + url + ": Unknown host");
                        } else {
                                if (!connMgr.requestRouteToHost( ConnectivityManager.TYPE_MOBILE_MMS, inetAddr)) {
                                        throw new IOException("Cannot establish route to " + inetAddr + " for " + url);
                                }
                        }
                }
        }

        private static int lookupHost(String hostname) {
                InetAddress inetAddress;
                try {
                        inetAddress = InetAddress.getByName(hostname);
                } catch (UnknownHostException e) {
                        return -1;
                }
                byte[] addrBytes;
                int addr;
                addrBytes = inetAddress.getAddress();
                addr = ((addrBytes[3] & 0xff) << 24) | ((addrBytes[2] & 0xff) << 16) | ((addrBytes[1] & 0xff) << 8) | (addrBytes[0] & 0xff);
                return addr;
        }


}

Ответ:
Столкнулся с проблемой - скачивание данных с ММС Центра
Я получаю заголовки и из них извлекаю url хранения ммс и адрес отправителя.
Затем пытаюсь по http скачать данные по url который достал из заголовка.
Но мне возвращается IOException Time Out. 
Почему я не могу скачать ммску, стандартное приложение получает ММС.

Ниже код моего ресивера:
Код


import android.content.BroadcastReceiver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import com.android.mms.transaction.HttpUtils;
import com.android.mms.util.SendingProgressTokenManager;
import com.google.android.mms.pdu_alt.*;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
* Created by Ed on 02.10.2014.
*/

public class MMSReceiver extends BroadcastReceiver {

        Context context;
        ConnectivityManager manager;

        public void onReceive(final Context context, Intent intent) {
                this.context = context;
                Bundle bundle = intent.getExtras();
                manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

                byte[] buffer = bundle.getByteArray("data");
                GenericPdu genericPdu = new PduParser(buffer).parse();
                ContentValues vl = getParams(genericPdu);
                final String contentLocation = vl.getAsString("ct_l");

                new Thread(new Runnable() {
                        @Override
                        public void run() {
                                try {
                                        ensureRouteToHost(context, contentLocation,  "10.10.10.10");
                                        byte[] rawPdu = HttpUtils.httpConnection(context, SendingProgressTokenManager.NO_TOKEN, contentLocation, null, HttpUtils.HTTP_GET_METHOD, true, "10.10.10.10", 8080); // ЗДЕСЬ <====================

                                        Log.i("mLogs", "DATA :" + rawPdu.length);
                                } catch (IOException e) {
                                        e.printStackTrace();
                                }
                        }
                }).start();

        }

        public static void ensureRouteToHost(Context context, String url, String proxy) throws IOException {
                ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
                connMgr.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE_HIPRI, "enableMMS");

                int inetAddr;
                if (proxy != null && !proxy.equals("")) {
                        String proxyAddr = proxy;
                        inetAddr = lookupHost(proxyAddr);
                        if (inetAddr == -1) {
                                Log.i("mLogs", "Cannot establish route for " + url + ": Unknown host");
                        } else {
                                if (!connMgr.requestRouteToHost(ConnectivityManager.TYPE_MOBILE_MMS, inetAddr)) {
                                        Log.i("mLogs","Cannot establish route to proxy " + inetAddr);
                                }
                        }
                } else {
                        Uri uri = Uri.parse(url);
                        inetAddr = lookupHost(uri.getHost());
                        if (inetAddr == -1) {
                                throw new IOException("Cannot establish route for " + url + ": Unknown host");
                        } else {
                                if (!connMgr.requestRouteToHost( ConnectivityManager.TYPE_MOBILE_MMS, inetAddr)) {
                                        throw new IOException("Cannot establish route to " + inetAddr + " for " + url);
                                }
                        }
                }
        }

        private static int lookupHost(String hostname) {
                InetAddress inetAddress;
                try {
                        inetAddress = InetAddress.getByName(hostname);
                } catch (UnknownHostException e) {
                        return -1;
                }
                byte[] addrBytes;
                int addr;
                addrBytes = inetAddress.getAddress();
                addr = ((addrBytes[3] & 0xff) << 24) | ((addrBytes[2] & 0xff) << 16) | ((addrBytes[1] & 0xff) << 8) | (addrBytes[0] & 0xff);
                return addr;
        }


}

Вопрос: Android studio шаблон GoogleMap Activity

Создал шаблон гугл карт. В value есть файл google_maps_api.xml(debug)//

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<resources>
    <string name="google_maps_key_instructions" templateMergeStrategy="replace"><!--
 
    TODO: Before you run your application, you need a Google Maps API key.
 
    To get one, follow this link, follow the directions and press "Create" at the end:
 
[url]https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=F0:B2:F3:N5:41:D3:D1:38:89:5D:C4:F1:E1:24:A2:60:D7:F1:D4:E5%3Broot.googlemap[/url]
 
    You can also add your credentials to an existing key, using this line:
    F0:B2:F3:N5:41:D3:D1:38:89:5D:C4:F1:E1:24:A2:60:D7:F1:D4:E5;mypackge.googlemap
 
    Once you have your key (it starts with "AIza"), replace the "google_maps_key"
    string in this file.
    --></string>
 
    <string name="google_maps_key" templateMergeStrategy="preserve">AIzaSyCkGpkNVdernKBsuajZ62zKf1BSMhYFQgs</string>
</resources>
Я перехожу по ссылки, создаю новый проект в консоли и мне выдает код типа AIza.. я его вставляю в google_maps_key и запускаю проект..


12-12 08:56:16.096 30610-30628/root.googlemap E/Google Maps Android API﹕ Authorization failure. Please see for how to correctly set up the map.
12-12 08:56:16.126 30610-30628/root.googlemap E/Google Maps Android API﹕ In the Google Developer Console ()
Ensure that the "Google Maps Android API v2" is enabled.
Ensure that the following Android Key exists:
API Key: AIzaS***********************
Android Application (<cert_fingerprint>;<package_name>): C8:C9:09:31:BF:1C:AD:6E:6D:2E:3D:F6:E5:9F:A5:28:35:46:37:93;root.googlemap

Google Maps Android API v2 = включен

Я пробывал еще в jdk прописывать keytool -list -v -keystore mystore.keystore
вот и SHA1 certificate был таким же как и сгенерила андроид студия... Помогите пожалуйста разобраться

Добавлено через 1 час 53 минуты
Сейчас пробывал запустить примеры из библиотеки D:\Users\59538\Desktop\android-studio\sdk\extras\google\google_play_services\samples\maps


Вот и там сказано в манифесте

XML
1
2
3
4
5
6
7
<!-- ** You need to replace the key below with your own key. **
         The example key below will not be accepted because it is not linked to the
         certificate which you will use to sign this application.
         See: [url]https://developers.google.com/maps/documentation/android/start[/url]
         for instructions on how to get your own key. -->
    <meta-data android:name="com.google.android.maps.v2.API_KEY"
    android:value="AIzaSyCk2egskjhFGHJKfgs"/>
Я заменил на свой и ничего неработает.. что я делаю нитак?? Опять таже ошибка

Добавлено через 14 минут
lol ВСЕ РАБОТАЕТ
Ответ:
Сообщение от kirawa
Создал шаблон гугл карт. В value есть файл google_maps_api.xml(debug)//

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<resources>
    <string name="google_maps_key_instructions" templateMergeStrategy="replace"><!--
 
    TODO: Before you run your application, you need a Google Maps API key.
 
    To get one, follow this link, follow the directions and press "Create" at the end:
 
[url]https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=F0:B2:F3:N5:41:D3:D1:38:89:5D:C4:F1:E1:24:A2:60:D7:F1:D4:E5%3Broot.googlemap[/url]
 
    You can also add your credentials to an existing key, using this line:
    F0:B2:F3:N5:41:D3:D1:38:89:5D:C4:F1:E1:24:A2:60:D7:F1:D4:E5;mypackge.googlemap
 
    Once you have your key (it starts with "AIza"), replace the "google_maps_key"
    string in this file.
    --></string>
 
    <string name="google_maps_key" templateMergeStrategy="preserve">AIzaSyCkGpkNVdernKBsuajZ62zKf1BSMhYFQgs</string>
</resources>
Я перехожу по ссылки, создаю новый проект в консоли и мне выдает код типа AIza.. я его вставляю в google_maps_key и запускаю проект..


12-12 08:56:16.096 30610-30628/root.googlemap E/Google Maps Android API﹕ Authorization failure. Please see for how to correctly set up the map.
12-12 08:56:16.126 30610-30628/root.googlemap E/Google Maps Android API﹕ In the Google Developer Console ()
Ensure that the "Google Maps Android API v2" is enabled.
Ensure that the following Android Key exists:
API Key: AIzaS***********************
Android Application (<cert_fingerprint>;<package_name>): C8:C9:09:31:BF:1C:AD:6E:6D:2E:3D:F6:E5:9F:A5:28:35:46:37:93;root.googlemap

Google Maps Android API v2 = включен

Я пробывал еще в jdk прописывать keytool -list -v -keystore mystore.keystore
вот и SHA1 certificate был таким же как и сгенерила андроид студия... Помогите пожалуйста разобраться

Добавлено через 1 час 53 минуты
Сейчас пробывал запустить примеры из библиотеки D:\Users\59538\Desktop\android-studio\sdk\extras\google\google_play_services\samples\maps


Вот и там сказано в манифесте

XML
1
2
3
4
5
6
7
<!-- ** You need to replace the key below with your own key. **
         The example key below will not be accepted because it is not linked to the
         certificate which you will use to sign this application.
         See: [url]https://developers.google.com/maps/documentation/android/start[/url]
         for instructions on how to get your own key. -->
    <meta-data android:name="com.google.android.maps.v2.API_KEY"
    android:value="AIzaSyCk2egskjhFGHJKfgs"/>
Я заменил на свой и ничего неработает.. что я делаю нитак?? Опять таже ошибка

Добавлено через 14 минут
lol ВСЕ РАБОТАЕТ
А в чем проблема то была?
Вопрос: HTTP post android

Просмотрел множество статей об этом, пытался использовать простейший пример HttpRequest, но все оказалось не так уж легко. Просмотрел как нужно использовать Asynktask но не особо понял. И сделал другой пример но и тут вышла ошибка программа слетает после нажатия кнопки.

Код 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
package ktl.myapplication;
 
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
 
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
 
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends Activity {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
    }
 
 
 
 
    public void elec1(View view) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                HttpClient httpClient = new DefaultHttpClient();
                // replace with your url
                HttpPost httpPost = new HttpPost("www.shkz3.info/switch.php");
 
 
                //Post Data
                List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(2);
                nameValuePair.add(new BasicNameValuePair("PAR", "SVET1"));
 
 
 
                //Encoding POST data
                try {
                    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
                } catch (UnsupportedEncodingException e) {
                    // log exception
                    e.printStackTrace();
                }
 
                //making POST request.
                try {
                    HttpResponse response = httpClient.execute(httpPost);
                    // write response to log
                    Log.d("Http Post Response:", response.toString());
                } catch (ClientProtocolException e) {
                    // Log exception
                    e.printStackTrace();
                } catch (IOException e) {
                    // Log exception
                    e.printStackTrace();
                }
            }
        } ).start();
    }
 
} 
logcat

Код 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
04-02 17:28:31.320  21066-21066/ktl.myapplication D/GraphicBuffer﹕ create handle(0x61a8def0) (w:1088, h:1920, f:1)
04-02 17:28:31.354  21066-21066/ktl.myapplication D/GraphicBuffer﹕ create handle(0x61a9c1d0) (w:1088, h:1920, f:1)
04-02 17:28:34.268  21066-21066/ktl.myapplication I/View﹕ Touch down dispatch to android.widget.Button{4317aea8 VFED..C. ........ 425,192-654,336 #7f080040 app:id/btn3}, event = MotionEvent { action=ACTION_DOWN, id[0]=0, x[0]=113.5014, y[0]=68.82507, Xw[0]=0.0, Yw[0]=0.0, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=72550086, downTime=72550086, deviceId=3, source=0x1002 }
04-02 17:28:34.353  21066-21066/ktl.myapplication I/View﹕ Touch up dispatch to android.widget.Button{4317aea8 VFED..C. ...P.... 425,192-654,336 #7f080040 app:id/btn3}, event = MotionEvent { action=ACTION_UP, id[0]=0, x[0]=108.50604, y[0]=68.82507, Xw[0]=16.0, Yw[0]=16.0, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=72550207, downTime=72550086, deviceId=3, source=0x1002 }
04-02 17:28:34.386  21066-21066/ktl.myapplication D/dalvikvm﹕ create interp thread : stack size=128KB
04-02 17:28:34.386  21066-21066/ktl.myapplication D/dalvikvm﹕ create new thread
04-02 17:28:34.386  21066-21066/ktl.myapplication D/dalvikvm﹕ new thread created
04-02 17:28:34.386  21066-21066/ktl.myapplication D/dalvikvm﹕ update thread list
04-02 17:28:34.386  21066-21108/ktl.myapplication D/dalvikvm﹕ threadid=12: interp stack at 0x61b68000
04-02 17:28:34.386  21066-21108/ktl.myapplication D/dalvikvm﹕ init ref table
04-02 17:28:34.386  21066-21108/ktl.myapplication D/dalvikvm﹕ init mutex
04-02 17:28:34.386  21066-21108/ktl.myapplication D/dalvikvm﹕ threadid=12: created from interp
04-02 17:28:34.386  21066-21066/ktl.myapplication D/dalvikvm﹕ start new thread
04-02 17:28:34.387  21066-21108/ktl.myapplication D/dalvikvm﹕ threadid=12: notify debugger
04-02 17:28:34.387  21066-21108/ktl.myapplication D/dalvikvm﹕ threadid=12 (Thread-6538): calling run()
04-02 17:28:34.498  21066-21108/ktl.myapplication D/dalvikvm﹕ threadid=12: exiting
04-02 17:28:34.498  21066-21108/ktl.myapplication W/dalvikvm﹕ threadid=12: thread exiting with uncaught exception (group=0x4188dc98)
04-02 17:28:34.498  21066-21108/ktl.myapplication W/dalvikvm﹕ threadid=12: uncaught exception occurred
04-02 17:28:34.502  21066-21108/ktl.myapplication W/System.err﹕ java.lang.IllegalStateException: Target host must not be null, or set in parameters. scheme=null, host=null, path=www.shkz3.info/switch.php
04-02 17:28:34.506  21066-21108/ktl.myapplication W/System.err﹕ at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:607)
04-02 17:28:34.506  21066-21108/ktl.myapplication W/System.err﹕ at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:298)
04-02 17:28:34.506  21066-21108/ktl.myapplication W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:587)
04-02 17:28:34.506  21066-21108/ktl.myapplication W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:511)
04-02 17:28:34.506  21066-21108/ktl.myapplication W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:489)
04-02 17:28:34.506  21066-21108/ktl.myapplication W/System.err﹕ at ktl.myapplication.MainActivity$1.run(MainActivity.java:68)
04-02 17:28:34.506  21066-21108/ktl.myapplication W/System.err﹕ at java.lang.Thread.run(Thread.java:841)
04-02 17:28:34.506  21066-21108/ktl.myapplication W/dalvikvm﹕ threadid=12: calling UncaughtExceptionHandler
04-02 17:28:34.519  21066-21108/ktl.myapplication E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-6538
    Process: ktl.myapplication, PID: 21066
    java.lang.IllegalStateException: Target host must not be null, or set in parameters. scheme=null, host=null, path=www.shkz3.info/switch.php
            at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:607)
            at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:298)
            at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:587)
            at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:511)
            at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:489)
            at ktl.myapplication.MainActivity$1.run(MainActivity.java:68)
            at java.lang.Thread.run(Thread.java:841)
04-02 17:28:35.006  21066-21066/ktl.myapplication D/ActivityThread﹕ ACT-AM_ON_PAUSE_CALLED ActivityRecord{431659b0 token=android.os.BinderProxy@43165098 {ktl.myapplication/ktl.myapplication.MainActivity}}
04-02 17:28:35.053  21066-21066/ktl.myapplication D/ActivityThread﹕ ACT-PAUSE_ACTIVITY_FINISHING handled : 0 / android.os.BinderProxy@43165098
04-02 17:28:35.444  21066-21066/ktl.myapplication D/OpenGLRenderer﹕ Flushing caches (mode 0)
04-02 17:28:35.555  21066-21066/ktl.myapplication D/GraphicBuffer﹕ close handle(0x604a4a98) (w:1088 h:1920 f:1)
04-02 17:28:35.557  21066-21066/ktl.myapplication D/GraphicBuffer﹕ close handle(0x61bc41a8) (w:1088 h:1920 f:1)
04-02 17:28:35.558  21066-21066/ktl.myapplication D/GraphicBuffer﹕ close handle(0x61a8def0) (w:1088 h:1920 f:1)
04-02 17:28:35.559  21066-21066/ktl.myapplication D/GraphicBuffer﹕ close handle(0x61a9c1d0) (w:1088 h:1920 f:1)
04-02 17:28:35.851  21066-21115/ktl.myapplication D/dalvikvm﹕ threadid=13: interp stack at 0x605a3000
04-02 17:28:35.851  21066-21115/ktl.myapplication D/dalvikvm﹕ init ref table
04-02 17:28:35.851  21066-21115/ktl.myapplication D/dalvikvm﹕ init mutex
04-02 17:28:35.873  21066-21066/ktl.myapplication D/OpenGLRenderer﹕ Flushing caches (mode 1)
04-02 17:28:35.890  21066-21066/ktl.myapplication D/OpenGLRenderer﹕ Flushing caches (mode 0)
04-02 17:28:35.901  21066-21066/ktl.myapplication D/ActivityThread﹕ ACT-DESTROY_ACTIVITY handled : 1 / android.os.BinderProxy@43165098
Ответ: CoolMind, Привет! Да, пробую JSON на сервер отправить с помощью HttpURLConnection. Кучу инфы прочитал, тему создал, никак не пойму как правильно отправить. Чувствую что-то с заголовками не-то делаю.
Вопрос: Где хранятся файлы с БД SQLite в Android Studio?

Такая проблема, создал БД, создал колонки с именами, но потом начал переименовывать и ошибка (код ниже). Пишет не создано колонки с именем, как я понял. Создал новый проект, там программа запускается и выполняет все операции. Скажите, могу я удалить какой-то файл (или часть файла), чтобы таблица создавалась всегда заного (после моего удаления). Класс DBHelper прописан в МейнАктивити.
Кликните здесь для просмотра всего текста
Код ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
04-06 14:56:02.785    1843-1843/ru.site.myapplication33 E/SQLiteLog﹕ (1) table mytable has no column named family
04-06 14:56:02.786    1843-1843/ru.site.myapplication33 E/SQLiteDatabase﹕ Error inserting name=1 family=1
    android.database.sqlite.SQLiteException: table mytable has no column named family (code 1): , while compiling: INSERT INTO mytable(name,family) VALUES (?,?)
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
            at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469)
            at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1341)
            at ru.site.myapplication33.RedactStudentov.onClick(RedactStudentov.java:74)
            at android.view.View.performClick(View.java:4756)
            at android.view.View$PerformClick.run(View.java:19749)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
04-06 14:56:02.786    1843-1843/ru.site.myapplication33 D/myLogs﹕ row inserted, ID = -1
device not found
Ответ: liroykaz, БД в Android Studio предпочтительно хранить в папке assets/ (некоторые по старинке хранят ещё и в assets/databases/). После начала работы программы БД копируется в папку data/имя_пакета/ (как сам настроишь).
Если вам нужны старые данные пользователя перед изменением БД, лучше сначала сделать временную таблицу, а потом уже удалять старую. Если старые данные не нужны, проще удалить БД и скопировать заново, но тут тонкий момент, некоторые смартфоны могут глючить.