Note that there are some explanatory texts on larger screens.

plurals
  1. POJersey Client on Android - NullPointerException
    primarykey
    data
    text
    <p>I am trying to create a simple Android client for a web service I have built, but something goes wrong at runtime.</p> <p>Here is the Client:</p> <pre><code>public class MyClient extends AsyncTask&lt;EditText, Integer, String&gt; { private EditText text; protected String doInBackground(EditText... strings) { RuntimeDelegate .setInstance(new com.sun.ws.rs.ext.RuntimeDelegateImpl()); WebResource wbr; Client client = Client.create(); wbr = client .resource("http://my.ip:8080/MazeService/rest/service/hello"); String result = wbr.queryParam("number", "10") .accept(MediaType.APPLICATION_JSON).get(String.class); text = strings[0]; return result; } protected void onProgressUpdate(Integer... progress) { // setProgressPercent(progress[0]); } protected void onPostExecute(String result) { if (result != null) this.text.setText(result); else Log.d("MyApp", "No Result"); } </code></pre> <p>}</p> <p>and the Service:</p> <pre><code>@Path("/service") public class AndroidService { @GET @Produces(MediaType.APPLICATION_JSON ) @Path("/hello") public String getJSON(@QueryParam("number") String nr) { String s = "Hi there! The number is: "+nr; return s; } } </code></pre> <p>I get this stacktrace in LogCat:</p> <pre><code>02-18 16:26:06.446: E/AndroidRuntime(1381): FATAL EXCEPTION: AsyncTask #1 02-18 16:26:06.446: E/AndroidRuntime(1381): java.lang.RuntimeException: An error occured while executing doInBackground() 02-18 16:26:06.446: E/AndroidRuntime(1381): at android.os.AsyncTask$3.done(AsyncTask.java:278) 02-18 16:26:06.446: E/AndroidRuntime(1381): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 02-18 16:26:06.446: E/AndroidRuntime(1381): at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 02-18 16:26:06.446: E/AndroidRuntime(1381): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 02-18 16:26:06.446: E/AndroidRuntime(1381): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 02-18 16:26:06.446: E/AndroidRuntime(1381): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208) 02-18 16:26:06.446: E/AndroidRuntime(1381): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 02-18 16:26:06.446: E/AndroidRuntime(1381): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 02-18 16:26:06.446: E/AndroidRuntime(1381): at java.lang.Thread.run(Thread.java:856) 02-18 16:26:06.446: E/AndroidRuntime(1381): Caused by: java.lang.NullPointerException 02-18 16:26:06.446: E/AndroidRuntime(1381): at javax.ws.rs.core.MediaType.valueOf(MediaType.java:119) 02-18 16:26:06.446: E/AndroidRuntime(1381): at com.sun.jersey.api.client.ClientResponse.getType(ClientResponse.java:615) 02-18 16:26:06.446: E/AndroidRuntime(1381): at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:532) 02-18 16:26:06.446: E/AndroidRuntime(1381): at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:506) 02-18 16:26:06.446: E/AndroidRuntime(1381): at com.sun.jersey.api.client.WebResource.handle(WebResource.java:674) 02-18 16:26:06.446: E/AndroidRuntime(1381): at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74) 02-18 16:26:06.446: E/AndroidRuntime(1381): at com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:503) 02-18 16:26:06.446: E/AndroidRuntime(1381): at com.maze.client.MyClient.doInBackground(MyClient.java:25) 02-18 16:26:06.446: E/AndroidRuntime(1381): at com.maze.client.MyClient.doInBackground(MyClient.java:1) 02-18 16:26:06.446: E/AndroidRuntime(1381): at android.os.AsyncTask$2.call(AsyncTask.java:264) 02-18 16:26:06.446: E/AndroidRuntime(1381): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 02-18 16:26:06.446: E/AndroidRuntime(1381): ... 5 more </code></pre> <p>I do not understand what the problem is, since a similar client works on PC. There is no problem with the IP address, since I can access the server from the Android VirtualDevice.</p> <p>The Android version is 4.0.3 API version 15. For the client I used Jersey 1.11.</p> <p><strong>EDIT</strong></p> <p>I have also tried to remove the whole thing with the EditText, since someone told me it isn't used as it should be. Still, I got the same error. I simply can not understand what am I doing wrong. If I should display any other additional information, please let me know. Also, ANY idea is good. I am new to Android and I might have made some stupid mistakes.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload