2012-08-02 3 views
1

У меня есть приложение на google play. Я сделал новую версию с более высоким кодом версии и другим именем. Протестировано на моем собственном устройстве Android (v2.3.3) и эмуляторе (v4.0.3). Пока нет ошибок, поэтому я поставил обновление на рынок.Отчет о сбоях разработчиков Android

Теперь первые сообщения об ошибках приходят !!!!! (см. ниже) Я не знаю, что это значит.

Новое обновление было небольшим изменением в разрешениях, и я удалил две библиотеки (jumptap SDK и jumptap-адаптер для admob-посредничества). Удаленные разрешения были:

<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

Оставляя эти два для AdMob объявления:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

Код ошибки:

java.lang.RuntimeException: Unable to start activity 
ComponentInfo{com.masked.app/com.masked.app.mainjava}:java.lang.NullPointerException 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2705) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2721) 
at android.app.ActivityThread.access$2300(ActivityThread.java:132) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:123) 
at android.app.ActivityThread.main(ActivityThread.java:4669) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:521) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:876) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NullPointerException 
at com.masked.app.mainjava.onCreate(mainjava.java:53) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2669) 

В строке 132 есть "adblockcheck();" который можно найти здесь How to prevent ad blocker from blocking ads on an app; строка 123 также входит в этот код.

В строке 53 запускается медиапланер (mp.start();) со стартовым звуком.

В чем проблема, и почему я не могу получить ошибку на своих устройствах? Это мой первый отчет об ошибках через google play, является ли одна ошибка проблематичной или есть еще разработчики, которые испытывают ошибки и не всегда заботятся о них?

Полный Mainjava.java можно скачать здесь http://homepage.tudelft.nl/78u5u/main.zip

EDIT: R.raw.start это mp3-файл.

+0

[Android-библиотека для сбора и сообщений об авариях] (https://github.com/ajitsing/Sherlock) –

ответ

1

Трудно сказать, что происходит на самом деле, не видя (по крайней мере) весь метод onCreate() в com.masked.app.mainjava. Похоже, вы не инициализировали медиаплеер.

Если кто-то испытывает проблемы с отчетами о сбоях, это удивительный способ получить лучшую обратную связь на Android этот проект: http://code.google.com/p/acra/

EDIT:

Ваша проблема почти наверняка вызвана кодеком (ваше устройство не может воспроизвести данный ресурс из-за его типа файла/формата). Какой тип звукового файла?

Вы можете получить вокруг вашего вопроса, изменив этот блок:

if (startsoundint == 1){ 
    MediaPlayer mp = MediaPlayer.create(Mainjava.this, R.raw.start); 
    if (mp != null) // null check 
    { 
     mp.start(); 
    } 
} 

И да, это означает, что, вероятно, не является новой ошибкой, если вы не меняли звуковой файл.

+0

добавлен полный java в конце вопросов (щелкните правой кнопкой мыши, сохраните как) – John

+0

Я получаю 403.1 Запрещено (ошибка веб-сервера IIS) при попытке сохранить или просмотреть эту ссылку. – xbakesx

+0

oke, изменил его на zip-файл. Получил это сейчас? – John

2

Очевидно, что ваш MediaPlayer mp экземпляр имеет значение null. Это означает, что MediaPlayer.create метод вернулся null.

Как сказано в андроиде documenation для create метода:

Returns 
    a MediaPlayer object, or null if creation failed 

Я думаю, андроид не может создать MediaPlayer для вас: Из-отсутствия необходимости кодеков или так далее. Каков формат вашего файла R.raw.start? Вы можете попробовать играть с форматами. Независимо от того, что вам нужно, чтобы обработать это исключение.

Кроме того, как только что было сказано ранее, я советую вам использовать ACRA. Это может помочь вам быстро решить проблемы. По моему истечению, пользователи Android не любят отправлять отчеты об ошибках. Менее 10% ошибок сообщается в игру Google.

ОБНОВЛЕНИЕ: ACRA - достаточно хороший, но не идеальный, из-за блокировки. Это означает, что если приложение просто разбилось, а у пользователя медленное подключение к Интернету, вы можете получить сообщение ANR. Представьте себе: Пользователь считает, что приложение просто зависает, и решил ждать ответа приложения, а затем получает сообщение «Извините, приложение разбилось». Вы должны найти способ отправки отчетов через фоновый сервис или так далее, прежде чем использовать ACRA.

Кроме того, Документы Google - по умолчанию для отправки ошибок - ужасно. Настоятельно рекомендуется использовать другой сервер. Если ваше приложение достаточно мало, и вы думаете, что получите меньше 500 отчетов об ошибках за месяц, вы можете попробовать проприетарный BugSense, он поддерживает ACRA.

+0

Могу ли я добавить что-то вроде: if null, чем не сделать звук ??? – John

+0

и эта ошибка не что-то новое, поэтому не связано с обновлением ??? – John

+0

Да, я думаю, вы можете. Но вы должны хотя бы уведомить своего пользователя, что что-то пошло не так. Да, я думаю, это не связано с этим обновлением. Кроме того, вы проверили, откуда появился отчет об ошибке версии приложения? – pepyakin

Смежные вопросы