2015-01-21 17 views
9

Sto facendo funzionare robotium su un Nexus 6 e ottenere il seguente erroreTentativo di richiamare il metodo di interfaccia su un riferimento oggetto null finishComposingText()

java.lang.NullPointerException: Attempt to invoke interface method  'boolean android.view.inputmethod.InputConnection.finishComposingText()' on  a null object reference 
at android.view.inputmethod.InputConnectionWrapper.finishComposingText(InputConnectionWrapper.java:78) 
at android.view.inputmethod.InputMethodManager.reportFinishInputConnection(InputMethodManager.java:859) 
at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3253) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5221) 
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:899) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 

La linea in questione è:

 solo.enterText((android.widget.EditText) solo.getView("amount"), "11.11"); 

I ho verificato che il campo esista, non so quale altro potrebbe essere la causa del problema. Qualsiasi aiuto sarebbe gradito

+3

Beh, mi piacerebbe iniziare * * estraendo la parte 'EditText' come variabile locale, in modo da puoi essere * sicuro * che sei riuscito a ottenerlo (quindi non è un valore 'nullo') prima di passarlo al metodo ... –

+0

solo.getView sta restituendo un'istanza di EditText – FriendlyMikhail

+0

qualche soluzione? sto correndo lo stesso problema ... – chaitanyad

risposta

2

Sembra che tu abbia sbagliato EditText dal momento che hai confermato che l'istanza restituita è EditText.

android.widget.EditText editText= (android.widget.EditText)solo.getView("amount"); 
// validate here that you got right text by any method, for example getText() 
solo.enterText(editText, "11.11"); 

e se questo non funziona è possibile utilizzare l'accesso diretto senza solista:

editText.setText("11.11"); 
+0

accetto questo. Ho avuto un problema anni fa e non ricordo cosa ho fatto per risolverlo. Grazie per aver risposto – FriendlyMikhail