Sto provando a creare un dispositivo di prova utilizzando il framework Fitnesse
e voglio testare una funzione che recupera i dati da un server (servizio RESTFUL). Il mio banco di prova è molto semplice:Errore java.lang.RuntimeException: Stub! in Android con Test Fitnesse
public class FriendListActivityFixture extends ColumnFixture {
public int URL;
public String test() {
JSONArray array = JsonHelper.getJsonArrayFromUrl("http://107.22.209.62/android/get_users.php");
return array.toString();
}
}
public static JSONArray getJsonArrayFromUrl(String url) {
InputStream input = null;
String result = "";
JSONArray jsonArray = null;
try {
HttpClient httpclient = CustomHttpClient.getHttpClient();
HttpPost httppost = new HttpPost(url);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
input = entity.getContent();
}
catch (Exception e) {
Log.e(TAG + ".getJsonArrayFromUrl(String url)", "Error in http connection " + e.toString());
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(input, "iso-8859-1"), 8);
StringBuilder content = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
content.append(line + "\n");
}
input.close();
result = content.toString();
}
catch (Exception e) {
Log.e(TAG + ".getJsonArrayFromUrl(String url)", "Error parsing result " + e.toString());
}
try {
jsonArray = new JSONArray(result);
}
catch (JSONException e) {
Log.e(TAG + "getJsonArrayFromUrl(String url)", "Error converting data " + e.toString());
}
return jsonArray;
}
E qui è la pagina Fitnesse
di prova: percorso fitnesse.jar
!path C:\Program Files (x86)\Android\android-sdk\platforms\android-10\android.jar
!path C:\Users\chan\git\Spotr\Spotr\bin\classes
!|com.csun.spotr.fitnesse.FriendListActivityFixture|
|URL|test?|
|0|"wwa"|
Dal momento che è solo una demo, la mia prova potrebbe sembrare un po 'sciocco in questo momento . Sfortunatamente continuo a ricevere questi errori:
java.lang.RuntimeException: Stub!
at android.util.Log.e(Log.java:15)
at com.csun.spotr.util.JsonHelper.getJsonArrayFromUrl(JsonHelper.java:75)
at com.csun.spotr.fitnesse.FriendListActivityFixture.test(FriendListActivityFixture.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at fit.TypeAdapter.invoke(TypeAdapter.java:109)
at fit.TypeAdapter.get(TypeAdapter.java:97)
at fit.Fixture$CellComparator.compareCellToResult(Fixture.java:371)
at fit.Fixture$CellComparator.access$100(Fixture.java:357)
at fit.Fixture.compareCellToResult(Fixture.java:299)
at fit.Fixture.check(Fixture.java:295)
at fit.ColumnFixture.check(ColumnFixture.java:51)
at fit.Binding$QueryBinding.doCell(Binding.java:215)
at fit.ColumnFixture.doCell(ColumnFixture.java:37)
at fit.Fixture.doCells(Fixture.java:171)
at fit.Fixture.doRow(Fixture.java:165)
at fit.ColumnFixture.doRow(ColumnFixture.java:25)
at fit.Fixture.doRows(Fixture.java:159)
at fit.ColumnFixture.doRows(ColumnFixture.java:18)
at fit.Fixture.doTable(Fixture.java:153)
at fit.Fixture.interpretTables(Fixture.java:99)
at fit.Fixture.doTables(Fixture.java:79)
at fit.FitServer.process(FitServer.java:81)
at fit.FitServer.run(FitServer.java:56)
at fit.FitServer.main(FitServer.java:41)
E non ho idea di cosa mi stia dicendo? Ho scritto altri metodi di prova come add(), substract()
, tutto ha funzionato bene. Mi chiedo, questo errore comporta l'esecuzione di una lunga attività sul thread principale? Qualche idea?
Grazie, la mia classe di apparecchio di prova non contiene alcun codice attività, quindi non capisco perché devo eseguirlo sul dispositivo. Ad ogni modo, fammi provare a farlo funzionare sul dispositivo. – Chan
Lo stesso errore anche se l'ho eseguito sul mio telefono. Qualche soluzione? – Chan
hai androud.util.Log –