2012-05-29 6 views
0

Я получил следующий отчет о сбоях на рынке Android. Во время тестирования я не обнаружил ни одного сбоя, и мое приложение работает нормально. Как только я опубликовал свое приложение, я получил следующий отчет о сбое, который я показал ниже.Null Pointer Exception-android.widget.onTouchEvent

Но я не могу найти, где произошел сбой, я проверяю вопрос о переполнении стека, и в некоторых случаях я получил, что использование setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); вызывает сбои в некоторых устройствах. Это правда, потому что в моем приложении в какой-то деятельности я использовал эту строку кода, чтобы изменить тип ввода EditText с паролем-текстом/текстовым паролем.

Пожалуйста, помогите мне решить эту проблему.

Трассировка стека

java.lang.NullPointerException 
at android.widget.TextView.onTouchEvent(TextView.java:7529) 
at android.view.View.dispatchTouchEvent(View.java:3933) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:906) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:906) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:906) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:906) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:906) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:906) 
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1877) 
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1211) 
at android.app.Activity.dispatchTouchEvent(Activity.java:2198) 
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1852) 
at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2382) 
at android.view.ViewRoot.handleMessage(ViewRoot.java:2010) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:150) 
at android.app.ActivityThread.main(ActivityThread.java:4385) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607) 
at dalvik.system.NativeStart.main(Native Method) 


<EditText 
    android:id="@+id/txt_edit_passwrd" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/txt_passwrd_title" 
    android:background="@drawable/img_password_textbox" 
    android:cursorVisible="true" 
    android:layout_marginTop="195dp" 
    android:hint="@string/passwrd_hint_text" 
    android:inputType="textPassword" 
    android:maxLength="10" 
    android:padding="10dp" 
    android:textColor="#121212" > 
</EditText> 

ответ

0

Сначала проверьте, Have you mention Minimum_sdk_version in android-manifest?

если нет, то следующий может быть причиной сбоев вашего application--

Если вы используете эту функциональность Android OS, которые не поддерживают на клиента device.Say вас используя Finger_Pointer (как MotionEvent.ACTION_POINTER_DOWN), который не поддерживается перед Android 2.0.

Или вы используете onBackPressed(), который не поддерживает для андроид 1.6.I просто дал вам намек, вы можете проверить другой вопрос, как это, если у вас есть

Обновлено

для HTC устройства, собственности TextView в InputType.TYPE_CLASS_NUMBER приводят к сбою

Here is the same problem discussed you can refer to this also.

+0

yeh i android: minSdkVersion = "8", я использовал MotionEvent.ACTION_DOWN, MotionEvent.ACTION_UP, в некоторых моих классах. и я также использовал onBackPressed(). но мой minSdkVersion = «8», который равен 2.1, я думаю, – AndroidDev

+0

да .. на какой версии ваше приложение получило крах? – Sameer

+0

То, что я не знаю, но мое приложение поддерживает только те устройства, у которых есть Android 2.2 и выше. – AndroidDev

1

NullPointerException в моем собственном опыте, как правило, означает, что она не может найти опорный объект для экземпляра редактирования текста вашей установки типа входного сигнала для не может быть найден, проверьте ссылки на макет и как вы сами объявили EditText.

+0

Я обновил свой код .... и могу проверить его. – AndroidDev

+0

Проблема лежит на одном из ваших TextViews, android.widget.TextView.onTouchEvent (TextView.java:7529) Его не нашли/не указали правильно, (IN CODE), а не в вашем XML – Broak

+0

@ Как я могу найти этот сбой. ..i проверить его, но он никогда не сбой..о его очень трудно найти точную позицию аварии – AndroidDev

0

Решение состоит в том, чтобы не использовать «setInputType» с TextView. В любом случае вам не нужна фильтрация входного типа для TextViews, поскольку они предназначены только для отображения текста. Тип ввода необходим только для EditText (и там он работает). У меня была такая же проблема с версиями Android ниже 4.2.

Недостаток заключается в том, что применение типа ввода «пароль» в текстовом виде имеет смысл, поскольку оно маскирует пароль, который может быть предназначен (это было в моем случае). Но это приводит к случайным сбоям при касании или прокрутке текста.