Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: CountDownTimer - "в приложении произошла ошибка"

в приложении работает обратный счетчик реализованный через CountDownTimer.
время от времени вылезает ошибка "в приложении .. произошла ошибка".
ошибка точно из-за счетчика, поскольку вылезала когда в приложении работал только счетчик.

вот собственно счетчик:

Код 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
        new CountDownTimer(206000, 1000) {
            
            TextView mTextField = (TextView)findViewById(R.id.textView);
            
            public void onTick(long millisUntilFinished) {
                mTextField.setText("" + millisUntilFinished / 1000);
            }
            
            public void onFinish() {
                mTextField.setText("0");
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder
                        .setCancelable(false)
                        .setNegativeButton("Попробуйте еще раз",
                                new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int id) {
                                        dialog.cancel();
                                        Intent intent = new Intent(MainActivity.this, MainActivity.class);
                                        startActivity(intent);
                                        overridePendingTransition(R.anim.alpha2, R.anim.alpha1);
                                    }
                                });
                AlertDialog alert = builder.create();
                alert.show();
            }
            
        }.start();
счетчик как счетчик. может кто-то предполагает откуда проблема может быть? спасибо.
Ответ:
Сообщение от Паблито
лог ошибки где?
да я бы с радостью , да только ошибка вылетала на устройстве, когда отключено от АС. вот лог "в приложении произошла ошибка" и закрывается.
Вопрос: Ошибка при использовании action bar sherlock

Всем привет, недавно достался проект с action bar sherlock, нужно добавить поддержку твиттера, я использовал Fabric plagin для этого, добавил нужные зависимости. Но в проекте используется com.android.support:support-v4:19.0.0. и соответственно buildToolsVersion '19.0.1'. а твиттер требует 21+. Когда я в проекте меняю версию сборки или либы, то получаю ошибку. Гуглил, вариантов не так много, но они мне не помогают, может кто сталкивался?

Вот ошибка:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
E/AndroidRuntime: FATAL EXCEPTION: main
                                                                     Process: com.cpc.centralpark, PID: 19934
                                                                     java.lang.NoSuchFieldError: No instance field mFragments of type Landroid/support/v4/app/FragmentManagerImpl; in class Landroid/support/v4/app/Watson; or its superclasses (declaration of 'android.support.v4.app.Watson' appears in /data/app/com.cpc.centralpark-2/base.apk)
                                                                         at android.support.v4.app.Watson.onCreatePanelMenu(Watson.java:50)
                                                                         at com.actionbarsherlock.ActionBarSherlock.callbackCreateOptionsMenu(ActionBarSherlock.java:560)
                                                                         at com.actionbarsherlock.internal.ActionBarSherlockNative.dispatchCreateOptionsMenu(ActionBarSherlockNative.java:64)
                                                                         at com.actionbarsherlock.app.SherlockFragmentActivity.onCreatePanelMenu(SherlockFragmentActivity.java:164)
                                                                         at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:592)
                                                                         at com.android.internal.policy.impl.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java:984)
                                                                         at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:295)
                                                                         at android.os.Handler.handleCallback(Handler.java:815)
                                                                         at android.os.Handler.dispatchMessage(Handler.java:104)
                                                                         at android.os.Looper.loop(Looper.java:194)
                                                                         at android.app.ActivityThread.main(ActivityThread.java:5637)
                                                                         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:959)
                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
Ответ: Аналогичная ошибка и у меня.
Дали старый проект, там библиотека ActionBarSherlock и с последними версиями API SDK вылетает эта ошибка. Самое близкое что нашел по этой теме мне не помогло


Вот думаю как исправить...

Добавлено через 8 минут
UPD.

в gradle исправил на

Java
1
     compileSdkVersion 22
и

Java
1
    compile 'com.android.support:support-v4:22.0.0'
ошибка пропала
Вопрос: Ошибка при открытии новой activity

Здравствуйте, уважаемые программисты. У меня возник вопрос: пишу приложение под Android, которое , при нажатии на кнопку, получает от сервера три строки и присваивает их значения radioButton, находящимся в новой activity. Проблема в том, что до открытия новой activity происходит ошибка и работа программы прекращается. Думал, дело в сокете (особенно учитывая что без него всё работает), поскольку открываю соединение с сервером сразу после открытия activity, но при отладке я до этого места даже не дохожу. Фактически, при вызове любой функции, содержащей сокет, приложение закрывается. Можете подсказать, в чём ошибка?
Код первой activity:
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
package com.example.ibookpc.kanjiq;
 
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
 
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    //Метод кнопки, которая должна открывать новую activity.
    public void onStartButtonClick(View view) {
        startActivity(new Intent(this, QuestingActivity.class));
    }
}
Код второй activity (которая должна открываться, но вместо этого выдаёт ошибку):
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
package com.example.ibookpc.kanjiq;
 
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.util.ArrayList;
 
public class QuestingActivity extends AppCompatActivity {
 
    boolean answered = false;
    boolean correct = false;
    ArrayList<String> words=new ArrayList<String>();
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_questing);
        //На объявлении сокета я ставил точку остановки отладки, но до неё отладчик даже не доходил.
        Socket clientSocket;
        try {
            clientSocket = new Socket("localhost", 2015);
            BufferedReader in  = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
            words.add(in.readLine());
            words.add(in.readLine());
            words.add(in.readLine());
        } catch(IOException e)
        {
 
        }
        RadioButton case1 = (RadioButton) findViewById(R.id.radioButton1);
        RadioButton case2 = (RadioButton) findViewById(R.id.radioButton2);
        RadioButton case3 = (RadioButton) findViewById(R.id.radioButton3);
        case1.setText(words.get(1));
        case2.setText(words.get(2));
        case3.setText(words.get(3));
    }
 
    public void onNextButtonClick(View view)
    {
        if (answered==true){
            startActivity(new Intent(this, QuestingActivity.class));
        }
        else {
            Button button = (Button) findViewById(R.id.button3);
            button.setText("Next");
            answered = true;
        }
    }
}
Код сервера:
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
package serverPackage;
 
import java.io.*;
import java.net.*;
import java.util.ArrayList;
import java.util.Random;
 
public class Server {
    static public ArrayList<String> words=new ArrayList<String>();
    
    public static void main(String[] args) throws IOException {
        ServerSocket servers=null;
        Socket fromClient=null;
        BufferedReader in = null;
        PrintWriter    out= null;
        File file = new File( "words.txt" );
        BufferedReader br = new BufferedReader (
            new InputStreamReader(
                new FileInputStream( file ), "UTF-8"
            )
        );
        String line = null;
        while ((line = br.readLine()) != null) {
            words.add(line);
        }
        br.close();
        
        servers=new ServerSocket(2015);
        fromClient=servers.accept();
            
        in  = new BufferedReader(new 
        InputStreamReader(fromClient.getInputStream()));
        out = new PrintWriter(fromClient.getOutputStream(),true);
        String input, output;
        Random rand=new Random();
        int firstWordIndex=rand.nextInt(words.size());
        int secondWordIndex=firstWordIndex;
        do
        {
            secondWordIndex=rand.nextInt(words.size());
        }
        while (secondWordIndex==firstWordIndex);
        int thirdWordIndex=firstWordIndex;
        do
        {
            thirdWordIndex=rand.nextInt(words.size());
        }
        while (thirdWordIndex==firstWordIndex || thirdWordIndex==secondWordIndex);      
        out.println(words.get(firstWordIndex));
        out.println(words.get(secondWordIndex));
        out.println(words.get(thirdWordIndex));     
        
        
        in.close();
        out.close();
        in.close();
        fromClient.close();
            servers.close();
                
    }
}
Ответ:
Сообщение от YuraAAA
не надо создавать еще один поток
Но в таком случае выдаёт всё ту же ошибку (хотя и с ним до сих пор выдаёт).
Вопрос: Вылетает Hello World! - в приложении произошла ошибка

Здравствуйте. По непонятным причинам слетел Eclipse, при этом в буквальном смысле слова "почистив" все xml документы в моих проектах, тем самым наполовину их уничтожив. Но я не об этом хотел спросить. После переустановки всех компонентов, нужных для работы, во первых, я получил следующую проблему:

XML
1
2
3
4
5
6
7
8
9
10
NOTE: This project contains Java compilation errors, which can cause rendering failures for custom views. Fix compilation problems first.
 
Failed to find the style corresponding to the id 2130772027
Failed to find the style corresponding to the id 2130771996
java.lang.NullPointerException
Failed to load AppCompat ActionBar with unknown error.
Exception details are logged in Window > Show View > Error Log
The following classes could not be instantiated:
- android.support.v7.app.WindowDecorActionBar (Open Class, Show Error Log)
See the Error Log (Window > Show View) for more details.
Ну. т.е. при создании xml-файла и собственно активити это самое активити толком и не создавалось, сетуя на отсутствие одного из графических элементов. Погуглив, благо, я сумел справится с этой проблемой, сменив тему оформления на графической панели.
Но появилась проблема гораздо хуже: теперь даже при запуске приложения "Hello World!" (Обращаю внимание на то, что кода моего в программе нет, есть только дефолтный, который добавляет компилятор при создании проекта) приложение крешится со стандартным сообщением "В приложении ... произошла ошибка"...Хотя в проекте ошибок нет, ни в коде программы, ни теперь уже в активити или других xml-файлах...
Раньше кодил и всё было нормально, подобного не было ни разу, теперь вот столкнулся с такой проблемой... сутки пытался решить сам - толку ноль...облазил форумы, читал хелп...
Может быть кто то может помочь в решении этой проблемы? Ну или подсказать хотя бы, в какую сторону смотреть для устранения сего недуга? Буду очень благодарен за помощь.
Ответ: _Night_Scream_, собственно, я только что попробовал запустить приложение на эмуляторе - результат не изменился, следовательно, проблема не в телефоне

Добавлено через 10 часов 17 минут
Разобрался. Проблема была в классе ActionBarActivity, от которого по умолчанию наследуется новый класс в проекте и который был заблокирован разработчиками(собственно он был перечёркнут в коде). Заменил его на простой Activity и проблема решилась. При чём проблема была актуальна лишь для моего телефона(Lenovo A369i, Андрюха 4.2.2), пробовал на телефоне товарища с Android 5.1 - ошибки не было...
Правда так и не смог решить проблему темы оформления(на дефолтной ошибка, а при выборе любой другой отображается стандартная), но это мелочи.
Может кому-нибудь когда-нибудь пригодится мой горький опыт) Всем спасибо за отклик.
Вопрос: FATAL EXCEPTION: main - проклятая ошибка

Здравствуйте, в Android Studio ошибок не показывает, но при запуске программы на телефоне выходит такая ошибка
02-19 23:00:53.068 29600-29600/com.sms.phone.sms_sending E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sms.phone.sms_sending/com.sms.phone.sms_sending.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1728)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1747)
at android.app.ActivityThread.access$1500(ActivityThread.java:155)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993)
at android.os.Handler.dispatchMessage(Handler.java:130)
at android.os.Looper.loop(SourceFile:351)
at android.app.ActivityThread.main(ActivityThread.java:3814)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:538)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:659)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at java.util.Hashtable.get(Hashtable.java:298)
at java.util.Currency.getInstance(Currency.java:143)
at java.text.DecimalFormatSymbols.<init>(DecimalFormatSymbols.java:130)
at java.text.DecimalFormat.<init>(DecimalFormat.java:590)
at java.text.NumberFormat.getInstance(NumberFormat.java:439)
at java.text.NumberFormat.getNumberInstance(NumberFormat.java:505)
at java.text.NumberFormat.getInstance(NumberFormat.java:434)
at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:405)
at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:398)
at java.text.DateFormat.getDateInstance(DateFormat.java:493)
at com.sms.phone.sms_sending.MainActivity.onCreate(MainActivity.java:94)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1692)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1747)*
at android.app.ActivityThread.access$1500(ActivityThread.java:155)*
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993)*
at android.os.Handler.dispatchMessage(Handler.java:130)*
at android.os.Looper.loop(SourceFile:351)*
at android.app.ActivityThread.main(ActivityThread.java:3814)*
at java.lang.reflect.Method.invokeNative(Native Method)*
at java.lang.reflect.Method.invoke(Method.java:538)*
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)*
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:659)*
at dalvik.system.NativeStart.main(Native Method)*
В ЧЕМ ЖЕ ДЕЛО???
Ответ: как не парадоксально, но ту же самую, жму на ошибку где 94 строка он мне ее показывает, но она закоментирована
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
02-20 20:29:14.292 1015-1015/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sms.phone.sms_sending/com.sms.phone.sms_sending.MainActivity}: java.lang.NullPointerException
                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1728)
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1747)
                                                     at android.app.ActivityThread.access$1500(ActivityThread.java:155)
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993)
                                                     at android.os.Handler.dispatchMessage(Handler.java:130)
                                                     at android.os.Looper.loop(SourceFile:351)
                                                     at android.app.ActivityThread.main(ActivityThread.java:3814)
                                                     at java.lang.reflect.Method.invokeNative(Native Method)
                                                     at java.lang.reflect.Method.invoke(Method.java:538)
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:659)
                                                     at dalvik.system.NativeStart.main(Native Method)
                                                  Caused by: java.lang.NullPointerException
                                                     at java.util.Hashtable.get(Hashtable.java:298)
                                                     at java.util.Currency.getInstance(Currency.java:143)
                                                     at java.text.DecimalFormatSymbols.<init>(DecimalFormatSymbols.java:130)
                                                     at java.text.DecimalFormat.<init>(DecimalFormat.java:590)
                                                     at java.text.NumberFormat.getInstance(NumberFormat.java:439)
                                                     at java.text.NumberFormat.getNumberInstance(NumberFormat.java:505)
                                                     at java.text.NumberFormat.getInstance(NumberFormat.java:434)
                                                     at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:405)
                                                     at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:398)
                                                     at java.text.DateFormat.getDateInstance(DateFormat.java:493)
                                                     at com.sms.phone.sms_sending.MainActivity.onCreate(MainActivity.java:94)
                                                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1692)
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1747)*
                                                     at android.app.ActivityThread.access$1500(ActivityThread.java:155)*
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993)*
                                                     at android.os.Handler.dispatchMessage(Handler.java:130)*
                                                     at android.os.Looper.loop(SourceFile:351)*
                                                     at android.app.ActivityThread.main(ActivityThread.java:3814)*
                                                     at java.lang.reflect.Method.invokeNative(Native Method)*
                                                     at java.lang.reflect.Method.invoke(Method.java:538)*
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)*
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:659)*
                                                     at dalvik.system.NativeStart.main(Native Method)*
Вопрос: Ошибка "Selection does not contain an applet"

когда ввожу вот этот код
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
public class GraphicsView extends View {
    private Animation anim;
 
    private Bitmap jobs;
    private int jobsXOffset;
    private int jobsYOffset;
 
    public GraphicsView(Context context) {
        super(context);
 
        jobs = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
        jobsXOffset = jobs.getWidth() / 2;
        jobsYOffset = jobs.getHeight() / 2;
    }
 
    private void createAnim(Canvas canvas) {
        anim = new RotateAnimation(0, 360, canvas.getWidth() / 2, canvas.getHeight() / 2);
        anim.setRepeatMode(Animation.REVERSE);
        anim.setRepeatCount(Animation.INFINITE);
        anim.setDuration(10000L);
        anim.setInterpolator(new AccelerateDecelerateInterpolator());
 
        startAnimation(anim);
    }
 
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
 
        // creates the animation the first time
        if (anim == null) {
            createAnim(canvas);
        }
 
        int centerX = canvas.getWidth() / 2;
        int centerY = canvas.getHeight() / 2;
 
        canvas.drawBitmap(jobs, centerX - jobsXOffset, centerY - jobsYOffset, null);
    }
}
выходит ошибка selection does not contain an applet

Добавлено через 32 секунды
как избавиться от этой ошибки?
Ответ: я скопировал этот код и никаких ошибок не вижу
Вопрос: Ошибка "Галереи"

Ребят, такая ситуация, на телефоне HTC Disire 301 на днях возникла проблема с камерой, при её открытии всплывает ошибка "В приложении галерея произошла ошибка". Что делать? Помогите пожалуйста
Ответ: Была такая проблема на Redmi note 2, ничего не делал ток купили телефон и Галерея просто не работала( не запускалась и выдавала ошибку).

Все что я сделал это скачать другое приложение (Gallery Pro (есть куча разных))
Вопрос: SQLite, ошибка: не существует поля "почта" в базе данных

Создал самую простую программку для понимания баз данных SQLite.
Есть два поля: имя и почта. 3 кнопки: добавить в базу данных, считать с базы данных и стереть базу данных.
Выдает ошибку что не существует поля "почта" в базе данных. Помогите найти ошибку в коде.

main_activity.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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?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/etName"
            android:hint="Name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </EditText>
 
        <EditText
            android:id="@+id/etEmail"
            android:hint="Email"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </EditText>
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/btnAdd"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Add">
        </Button>
        <Button
            android:id="@+id/btnRead"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Read">
        </Button>
        <Button
            android:id="@+id/btnClear"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Clear">
        </Button>
    </LinearLayout>
</LinearLayout>
класс для базы данных DBHelper.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
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
 
public class DBHelper  extends SQLiteOpenHelper{
 
    public static final int DATABASE_VERSION = 1;
    public static final String DATABASE_NAME = "contactDb";
    public static final String TABLE_CONTACTS = "contacts";
 
    public static final String KEY_ID = "_id";
    public static final String KEY_NAME = "name";
    public static final String KEY_MAIL = "mail";
 
    public DBHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table " + TABLE_CONTACTS + "(" + KEY_ID
                + " integer primary key," + KEY_NAME + " text," + KEY_MAIL + " text" + ")");
 
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("drop table if exists " + TABLE_CONTACTS);
 
        onCreate(db);
 
    }
}
MainActivity.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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
 
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
 
    Button btnAdd, btnRead, btnClear;
    EditText etName, etEmail;
 
    DBHelper dbHelper;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        btnAdd = (Button) findViewById(R.id.btnAdd);
        btnAdd.setOnClickListener(this);
 
        btnRead = (Button) findViewById(R.id.btnRead);
        btnRead.setOnClickListener(this);
 
        btnClear = (Button) findViewById(R.id.btnClear);
        btnClear.setOnClickListener(this);
 
        etName = (EditText) findViewById(R.id.etName);
        etEmail = (EditText) findViewById(R.id.etEmail);
 
        dbHelper = new DBHelper(this);
    }
 
    @Override
    public void onClick(View v) {
 
        String name = etName.getText().toString();
        String email = etEmail.getText().toString();
 
        SQLiteDatabase database = dbHelper.getWritableDatabase();
 
        ContentValues contentValues = new ContentValues();
 
 
        switch (v.getId()) {
 
            case R.id.btnAdd:
                contentValues.put(DBHelper.KEY_NAME, name);
                contentValues.put(DBHelper.KEY_MAIL, email);
 
                database.insert(DBHelper.TABLE_CONTACTS, null, contentValues);
                break;
 
            case R.id.btnRead:
                Cursor cursor = database.query(DBHelper.TABLE_CONTACTS, null, null, null, null, null, null);
 
                if (cursor.moveToFirst()) {
                    int idIndex = cursor.getColumnIndex(DBHelper.KEY_ID);
                    int nameIndex = cursor.getColumnIndex(DBHelper.KEY_NAME);
                    int emailIndex = cursor.getColumnIndex(DBHelper.KEY_MAIL);
                        do {
                            Log.d("mLog", "ID = " + cursor.getInt(idIndex) +
                                            ", name = " + cursor.getString(nameIndex) +
                                            ", email = " + cursor.getString(emailIndex));
                        } while (cursor.moveToNext());
                } else
                    Log.d("mLog","0 rows");
 
                cursor.close();
                break;
 
            case R.id.btnClear:
                database.delete(DBHelper.TABLE_CONTACTS, null, null);
                break;
        }
        dbHelper.close();
    }
}
Ответ: Данный код правильный! Скорее всего база данных была создана раньше с ошибкой. Пересоздал проект и все заработало! Тему Можно закрывать!
Вопрос: "Ошибка при синтаксическом анализе пакета" при скачивании файла

Пытаюсь сделать обновление в своем приложении. Должно быть так: скачивается файл приложения и устанавливается. только вот скачивается он всего на 193 байта и начинается установка, естественно выдает "ошибка при синтаксическом анализе пакета." Почему файл не полностью скачивается?
вот сам код:
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
public class MainActivity extends Activity {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        UpdateApp atualizaApp = new UpdateApp();
        atualizaApp.setContext(getApplicationContext());
        atualizaApp.execute("http://mysite.ru/update.apk");
    }
        public class UpdateApp extends AsyncTask<String,Void,Void>{
                private Context context;
                public void setContext(Context contextf){
                        context = contextf;
                }
 
                @Override
                protected Void doInBackground(String... arg0) {
                        try {
                                URL url = new URL(arg0[0]);
                                HttpURLConnection c = (HttpURLConnection) url.openConnection();
                                c.setRequestMethod("GET");
                                c.setDoOutput(true);
                                c.connect();
 
                                String PATH = "/mnt/sdcard/Download/";
                                File file = new File(PATH);
                                file.mkdirs();
                                File outputFile = new File(file, "update.apk");
                                if(outputFile.exists()){
                                        outputFile.delete();
                                }
                                FileOutputStream fos = new FileOutputStream(outputFile);
 
                                InputStream is = c.getInputStream();
 
                                byte[] buffer = new byte[1024];
                                int len1 = 0;
                                while ((len1 = is.read(buffer)) != -1) {
                                        fos.write(buffer, 0, len1);
                                }
                                fos.close();
                                is.close();
 
                                Intent intent = new Intent(Intent.ACTION_VIEW);
                                intent.setDataAndType(Uri.fromFile(new File("/mnt/sdcard/Download/update.apk")), "application/vnd.android.package-archive");
                                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
                                context.startActivity(intent);
 
 
                        } catch (Exception e) {
                                Log.e("UpdateAPP", "Update error! " + e.getMessage());
                        }
                        return null;
                }}
}
Ответ: Вот нашёл пример похожиий. Но только тут тоже файл не скачивается. файл создается но он не качается. Размер 0 байт.
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
public class MainActivity extends Activity {
 
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                Button load = new Button(this);
                load.setText("Load file");
                load.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                                downloadFile("http://wapfile.ru/mp3/64/10325.mp3");
                        }
                });
                setContentView(load, new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
        }
 
 
        private void downloadFile(String url) {
                final Context context = this.getApplicationContext();
                final ProgressDialog progressDialog = new ProgressDialog(this);
 
                new AsyncTask<String, Integer, File>() {
                        private Exception m_error = null;
 
                        @Override
                        protected void onPreExecute() {
                                progressDialog.setMessage("Downloading ...");
                                progressDialog.setCancelable(false);
                                progressDialog.setMax(100);
                                progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                                progressDialog.show();
                        }
 
                        @Override
                        protected File doInBackground(String... params) {
 
                                URL url;
                                HttpURLConnection urlConnection;
                                InputStream inputStream;
                                int totalSize;
                                int downloadedSize;
                                byte[] buffer;
                                int bufferLength;
 
                                File filen = null;
                                FileOutputStream fos = null;
 
                                try {
                                        url = new URL(params[0]);
                                        urlConnection = (HttpURLConnection) url.openConnection();
 
                                        urlConnection.setRequestMethod("GET");
                                        urlConnection.setDoOutput(true);
                                        urlConnection.connect();
                                        filen = File.createTempFile("music", ".mp3", context.getCacheDir());
                                        fos = new FileOutputStream(filen);
                                        inputStream = urlConnection.getInputStream();
                                        totalSize = urlConnection.getContentLength();
                                        downloadedSize = 0;
                                        buffer = new byte[1024];
                                        bufferLength = 0;
                                        // читаем со входа и пишем в выход,
                                        // с каждой итерацией публикуем прогресс
                                        while ((bufferLength = inputStream.read(buffer)) > 0) {
                                                fos.write(buffer, 0, bufferLength);
                                                downloadedSize += bufferLength;
                                                publishProgress(downloadedSize, totalSize);
                                        }
                                        fos.close();
                                        inputStream.close();
 
                                        return filen;
                                } catch (MalformedURLException e) {
                                        e.printStackTrace();
                                        m_error = e;
                                } catch (IOException e) {
                                        e.printStackTrace();
                                        m_error = e;
                                }
 
                                return null;
                        }
 
                        // обновляем progressDialog
                        protected void onProgressUpdate(Integer... values) {
                                progressDialog.setProgress((int) ((values[0] / (float) values[1]) * 100));
                        };
 
                        @Override
                        protected void onPostExecute(File filen) {
                                // отображаем сообщение, если возникла ошибка
                                if (m_error != null) {
                                        m_error.printStackTrace();
                                        return;
                                }
                                progressDialog.hide();
                         }
                }.execute(url);
        }
}
Добавлено через 4 часа 13 минут
Всё, нашёл ошибку
Сообщение от naven
c.setDoOutput(true);
должен быть false.
Всем спасибо.
Вопрос: Ошибка Grade в Android Studio в Ubuntu

Помогите пожалуйста с ошибкой в Android Studio
После установки Android Studio 2.2 на Ubuntu(linux) и создании проекта выводится вот такое сообщение (Ошибка):
Error:Process 'command '/media/nikol/DATA/FILES_UBUNTU/Android_Programm/android-studio/jre/bin/java'' finished with non-zero exit value 2

пробавал менять версию в файле build.gradle:
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0' (на другую версию 2.1.0 и другие версии писал)
}

переходя в File>Project Structure>Project указанно:
Gradle version - 2.14.1
Android Pligin Version - 2.2.0
Android Plugin Repository - jcenter
Android Library Repository - jcenter
Ответ: После установки такая ошибка