Модераторы: javastic
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вылетает WifiReceiver, ClassNotFoundException 
:(
    Опции темы
Sanoend
Дата 1.5.2012, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 27.4.2012

Репутация: нет
Всего: нет



Не как не могу решить проблему. Есть приложение. которое сканирует эфир на наличие Wi-Fi сетей. 
Всё работает, если wi-fi был включен до запуска приложения. Но если сначала запустить приложение, а потом запустить Wi-Fi, то приложение просто вылетит.

Код для сканирования списка АП взят от сюда 
http://www.androiddb.ru/content/snippets/s...rovodnykh-setei
этот же пример встречается ещё в 100500 местах инета. Он везде одинаков и везде есть данная проблема.

Пробовал перед mainWifi.startScan(); и mainWifi.getScanResults(); ставить условие 
 if (mainWifi.getWifiState() == 3)  и задержку после mainWifi.setWifiEnabled(true); пробовал и try catch пробовал не чего не помогает.
Всю голову себе сломал. Помогите пожалуйста. Ниже лог ЛогКата

05-01 17:09:14.159: W/dalvikvm(21676): threadid=1: thread exiting with uncaught exception (group=0x40018578)
05-01 17:09:14.509: E/AndroidRuntime(21676): FATAL EXCEPTION: main
05-01 17:09:14.509: E/AndroidRuntime(21676): java.lang.RuntimeException: Unable to instantiate receiver com.wifilogger.WiFiStatusReceiver: java.lang.ClassNotFoundException: com.wifilogger.WiFiStatusReceiver in loader dalvik.system.PathClassLoader[/data/app/com.wifilogger-2.apk]
05-01 17:09:14.509: E/AndroidRuntime(21676):    at android.app.ActivityThread.handleReceiver(ActivityThread.java:1777)
05-01 17:09:14.509: E/AndroidRuntime(21676):    at android.app.ActivityThread.access$2400(ActivityThread.java:117)
05-01 17:09:14.509: E/AndroidRuntime(21676):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:985)
05-01 17:09:14.509: E/AndroidRuntime(21676):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-01 17:09:14.509: E/AndroidRuntime(21676):    at android.os.Looper.loop(Looper.java:130)
05-01 17:09:14.509: E/AndroidRuntime(21676):    at android.app.ActivityThread.main(ActivityThread.java:3687)
05-01 17:09:14.509: E/AndroidRuntime(21676):    at java.lang.reflect.Method.invokeNative(Native Method)
05-01 17:09:14.509: E/AndroidRuntime(21676):    at java.lang.reflect.Method.invoke(Method.java:507)
05-01 17:09:14.509: E/AndroidRuntime(21676):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
05-01 17:09:14.509: E/AndroidRuntime(21676):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
05-01 17:09:14.509: E/AndroidRuntime(21676):    at dalvik.system.NativeStart.main(Native Method)
05-01 17:09:14.509: E/AndroidRuntime(21676): Caused by: java.lang.ClassNotFoundException: com.wifilogger.WiFiStatusReceiver in loader dalvik.system.PathClassLoader[/data/app/com.wifilogger-2.apk]
05-01 17:09:14.509: E/AndroidRuntime(21676):    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
05-01 17:09:14.509: E/AndroidRuntime(21676):    at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
05-01 17:09:14.509: E/AndroidRuntime(21676):    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
05-01 17:09:14.509: E/AndroidRuntime(21676):    at android.app.ActivityThread.handleReceiver(ActivityThread.java:1768)
PM MAIL   Вверх
Dapo
Дата 3.5.2012, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 18.4.2002

Репутация: 1
Всего: 1



А если в программе отследить этот момент и включить из программы? и если все пучком то прикрутить диалог.
PM MAIL   Вверх
Sanoend
  Дата 4.5.2012, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 27.4.2012

Репутация: нет
Всего: нет



Dapo я наверное не очень ясно описал ситуацию. Дело в том. что при включении из программы будет появляться та же самая проблема.

Дело в том, что для сканирования Wi-Fi сетей я создаю BroadcastReceiver. Который по сути висит системным процессом. Даже если моё приложение не запущенно. 
Если упростить код WifiReceiver extends BroadcastReceiver до необходимого минимума для понимания проблемы то получается примерно вот так:
 class WifiReceiver extends BroadcastReceiver {
 
        public void onReceive(Context c, Intent intent) {
            sb = new StringBuilder();
    if (mainWifi.getWifiState() == WifiManager.WIFI_STATE_ENABLE ){
                wifiList = mainWifi.getScanResults();
                for(int i = 0; i < wifiList.size(); i++){
                    sb.append(new Integer(i+1).toString() + ".");
                    sb.append((wifiList.get(i)).toString());
                    sb.append("\n");
                }
                mainText.setText(sb);
    }
        }
}

И даже в таком варианте проблема проявляется. Тоесть пока Wi-Fi включен или выключен всё в порядке. Но в момент его переключения процесс вылетает. 
Что делать ума не приложу, если верить документации на android SDK, то всё верно, но работает не так как надо.
PM MAIL   Вверх
Sanoend
Дата 4.5.2012, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 27.4.2012

Репутация: нет
Всего: нет



Вот нарыл похожую проблему у человека
http://www.android-hilfe.de/android-app-en...app-crasht.html
Но в силу языкового барьера так и не понял решили эту проблему или нет.
PM MAIL   Вверх
Sanoend
Дата 7.5.2012, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 27.4.2012

Репутация: нет
Всего: нет



Разобрался. Проблема была не  в BroadcastReceiver. а в том как я его использую.
Вместо 

    mainWifi.setWifiEnabled(true);
    mainWifi.startScan();
    
надо было
    
this.mainWifi.startScan();
this.mainWifi.setWifiEnabled(true);    

то есть добавить this и поменять порядок. С this всё понятно, а вот зачем менять порядок я не понимаю!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Android | Следующая тема »


 




[ Время генерации скрипта: 0.0625 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.