Mã của tôi là:Bắt NullPointException với Jersey REST của khách hàng trên Android
Client client = Client.create();
WebResource web_resource = client.resource("http://www.myhostname.com/");
// String string = web_resource.path("foo").accept("text/xml").get(String.class);
// Log.d(getClass().getCanonicalName(), "jax-rs client string = " + string);
Num num = web_resource.path("foo").accept(MediaType.TEXT_XML_TYPE).get(Num.class);
Dòng cuối cùng gây ra vấn đề, và tôi nhận được một vấn đề tương tự nếu tôi thay thế nó với 2 nhận xét dòng với sự khác biệt mà tôi nhận được ngoại lệ trên một dòng khác của MediaType.java.
E/AndroidRuntime( 840): Caused by: java.lang.NullPointerException
E/AndroidRuntime( 840): at javax.ws.rs.core.MediaType.toString(MediaType.java:265)
E/AndroidRuntime( 840): at com.sun.jersey.api.client.ClientRequest.getHeaderValue(ClientRequest.java:232)
E/AndroidRuntime( 840): at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.writeOutBoundHeaders(URLConnectionClientHandler.java:276)
E/AndroidRuntime( 840): at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:197)
E/AndroidRuntime( 840): at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:147)
E/AndroidRuntime( 840): ... 17 more
jersey-client.jar và jersey-core.jar đã được thêm vào gói ở cấp cao nhất và đã được thêm vào thư viện trong đường dẫn xây dựng.
AndroidManifest.xml chứa:
<uses-permission android:name="android.permission.INTERNET" />
vẫn đang tìm kiếm câu trả lời. – necromancer
tôi thực sự muốn xem mã đã sửa đổi, mọi cập nhật? –
@Sponge, xin lỗi tôi đang theo dõi một ca khúc khác và sẽ mất vài tuần trước khi tôi làm bất kỳ điều gì liên quan đến Android. Tôi đã không sử dụng mã kiểm soát và mã nằm trong một số thư mục riêng biệt. Tôi có thể nhận được rằng nếu bạn nhắc nhở tôi trong một tuần hoặc lâu hơn, nhưng trong khi đó, hãy xem xét: (1) android classloader không thể đọc chú thích cấp gói mà ngăn JAXB từ khởi tạo; có thể khắc phục bằng quét thủ công; đó là chìa khóa tôi nhớ; (2) các lớp học và các cuộc gọi của họ phải được chuyển đến các gói khác nhau vì javax bị hạn chế; (3) kết quả là một tệp jar khá lớn có thể không hoạt động để phân phối – necromancer