Форум программистов, компьютерный форум CyberForum.ru

Анализ crash-лога - Android

Восстановить пароль Регистрация
Другие темы раздела
Android Версия sqlite http://www.cyberforum.ru/android-dev/thread1583617.html
Есть готовое приложение которое использует локальную БД, тестировалось на версии 3.8(sqlite). При установки прилажения на устройство у которого версия sqlite<3.8 возникают ошибки, в связи с отсутствием некоторых функций в их версии. Можно как нибудь в проект добавить ту сборку которая нужна и работать с ней на всех устройствах?
Android Создание активити с отображением элементов по показания компаса и координат Всем привет На работе поставили задачи сделать активити, вот так должно выглядеть в результате http://prntscr.com/93kfqu . В центре - аватрка текузего юзера, белая стрелка всегда показывает на север, а вокруг показаны аватарки людей, которые находятся вокруг, их координаты приходят берутся с сервера, те кто не попадает в круг показаны числом в оранжевом кржке. Ползунком внизу изменяется... http://www.cyberforum.ru/android-dev/thread1583414.html
Подсчет кликов по кнопке Android
Добрый день, Казалось бы, простая задача, но никак не пойму как найти простое решение. Есть кнопка, текст на которой является номером телефона. Стоит android:autoLink="phone" При нажатии вызывается стандартный номеронабиратель смартфона. Все вроде хорошо. Теперь на кнопку вешаю обработчик android:onClick="Click" и вызываемой функции хочу вести подсчет числа нажатий. Функция не вызывается. Я...
Android Перехват HTTPS трафика андроид приложения, запущенного на эмуляторе
Понадобилось узнать, что и куда шлет андроид приложение. Разработкой под андроид не занимался, поэтому малограмотен в этом деле. С какого эмулятора и каким сниффером можно нормально перехватить и прочитать HTTPS трафик? Пробовал BlueStacks, перехватывать идущее с него мне таки удалось Сharlesом, но как с сертификатами разобраться-пока не пойму. Сейчас ищу альтернативные варианты, был бы...
Android ListView с несколькими TextView http://www.cyberforum.ru/android-dev/thread1583159.html
Как сделать более одного TextView в одном элементе ListView, и как к ним обращаться ?
Android Autocompletetextview и сквозной поиск Как реализовать ? Мурка, Муж, Мука и т.д. понятно что по первым символам ищется все гуд, но этот функционал прошлый век. Нужно что бы при вводе "ур" выпадало "Мурка", а не только по первым символам. Только не говорите что нужно для этого БД поднимать и через like %% использовать или вообще адаптер свой писать. Я вообще тогда в возможностях andoid(java) разочаруюсь. И еще бы, если список... подробнее

Показать сообщение отдельно
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 414
17.11.2015, 13:33     Анализ crash-лога
Программа в случае crash'а отправляет данные мне на сервер.
Время от времени от пользователей получаю странные логи о NullPointerException.
С пользователями я связаться не могу и не знаю, как у них возникает сбой.
-------------
java.lang.NullPointerException at ua.slon.at.d.getView(Unknown Source) at android.widget.AbsListView.obtainView(AbsListView.java:2458) at android.widget.ListView.measureHeightOfChildren(ListView.java:1364) at android.widget.ListView.onMeasure(ListView.java:1276) at android.view.View.measure(View.java:16736) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5184) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) at android.view.View.measure(View.java:16736) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5184) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at android.view.View.measure(View.java:16736) at android.widget.LinearLayout.measureVertical(LinearLayout.java:847) at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) at android.view.View.measure(View.java:16736) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5184) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2392) at android.view.View.measure(View.java:16736) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2103) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1216) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1402) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1103) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6018) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:799) at android.view.Choreographer.doCallbacks(Choreographer.java:599) at android.view.Choreographer.doFrame(Choreographer.java:559) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:784) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:157) at android.app.ActivityThread.main(ActivityThread.java:5872) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:674) at dalvik.system.NativeStart.main(Native Method)
-------------
Программа скомпилирована через ProGuard с обфускацией. Но что за класс я выяснил. Это адаптер списка.
Лог пишет об ошибке при выполнении getView().
Не могу понять, что может вызывать NullPointerException.
Вот этот класс:

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
import android.annotation.SuppressLint;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
 
import java.util.ArrayList;
 
@SuppressLint("NewApi")
public class AdapterItems extends BaseAdapter {
 
    Context ctx;
    LayoutInflater lInflater;
    ArrayList<Item> objects;
 
    AdapterItems(Context context, ArrayList<Item> products) {
        ctx = context;
        objects = products;
        lInflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
 
    // кол-во элементов
    @Override
    public int getCount() {
        return objects.size();
    }
 
    public Item getItem(int position) {
        return objects.get(position);
    }
 
    // id по позиции
    @Override
    public long getItemId(int position) {
        return getItem(position).id;
    }
 
    // пункт списка
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // используем созданные, но не используемые view
        View view = convertView;
        if (view == null) {
            view = lInflater.inflate(R.layout.directory_items, parent, false);
        }
 
        Item p = getItem(position);
 
        TextView tvAddition = (TextView) view.findViewById(R.id.tvAddition);
        ImageView ivFolder = (ImageView) view.findViewById(R.id.ivFolder);
 
        if (p.IsFolder) {
            //группа
            ivFolder.setVisibility(View.VISIBLE);
            tvAddition.setVisibility(View.GONE);
        } else {
            //элемент
            ivFolder.setVisibility(View.GONE);
            String Addition = "";
            if (p.Type == DirectoryActivity.KindOfDirectory.Products) {
                if (MainActivity.Settings.ShowArticle)
                    Addition = ctx.getString(R.string.Article) + ": " + p.Article + ". ";
                Addition += ctx.getString(R.string.TheRest) + ": " + String.format("%.3f", p.Rest);
            } else if (p.Type == DirectoryActivity.KindOfDirectory.Clients) {
                Addition = p.Address;
            } else if (p.Type == DirectoryActivity.KindOfDirectory.Contracts) {
                Addition = p.Company;
            }
 
            if (!Addition.isEmpty()) {
                tvAddition.setText(Addition);
                tvAddition.setVisibility(View.VISIBLE);
            } else {
                tvAddition.setVisibility(View.GONE);
            }
        }
 
        TextView tvName = (TextView) view.findViewById(R.id.tvName);
        if (MainActivity.Settings.ShowCode)
            tvName.setText(p.Code + ". " + p.Name);
        else
            tvName.setText(p.Name);
 
        return view;
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru