Попытка использовать какой-то старый веб-сервис AMF из собственного приложения для Android. Я включил библиотеку: flex-messaging-core.jar и flex-messsaging-common.jar.
код в активности Android:
AMFConnection amfConnection = new AMFConnection();
try{
String url = "http://example.com/cc/messagebroker/amf";
amfConnection.connect(url);
Object result = amfConnection.call("exampleService","foo", "bar");
textView.setText(result.toString());
} catch (Exception e) {
Log.e(TAG, e.getMessage(),e);
}
amfConnection.close();
точно такое же соединение amf работает в Java SE, может получить правильный ответ. Но в Android я получаю исключение:
java.lang.NullPointerException
at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:632)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:347)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:296)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:503)
at flex.messaging.io.amf.client.AMFConnection.generateHttpResponseInfo(AMFConnection.java:633)
at flex.messaging.io.amf.client.AMFConnection.call(AMFConnection.java:532)
at com.example.jamesjin.myapplication2.MainActivity.tryAMF(MainActivity.java:42)
at com.example.jamesjin.myapplication2.MainActivity.onCreate(MainActivity.java:33)
at android.app.Activity.performCreate(Activity.java:5451)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392)
at android.app.ActivityThread.access$900(ActivityThread.java:169)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5487)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
Я также попробовал библиотеку klio-mobile-dataservice, которая дает такое же исключение.
Итак, как решить это исключение и подключить веб-службу AMF из собственного приложения для Android?