2016-05-20 3 views
0

Xamarin用IBM Mobile First SDKを使用してXamarin.Formsアプリケーションを開発しています。プロシージャコールなどは共有プロジェクトにありますが、プラットフォーム固有のプロジェクトでWorklightクライアントの新しいインスタンスを作成します。AndroidでWorklight Clientの新しいインスタンスを作成するときにNullPointerExceptionが発生する

すべてはiOSではうまく動作しますが、AndroidではJava.Lang.NullpointerExceptionattempt to invoke virtual method on boolean java.lang.String.equalsIgnoreCase (java.lang.String) on a null object reference)となります。

これは私の新しいクライアントを開始する方法です。

private IWorklightClient InitiateNewClient() { var currentActivity = (Activity)Xamarin.Forms.Forms.Context; return WorklightClient.CreateInstance(currentActivity); // crashes on this line }

編集:明確にするためusings:

using Worklight; using Worklight.Xamarin.Android;

編集: I私はそれをデバッグし、[現在がnullではない、それは私のプロジェクトで正しい活動(MainActivity)がありますtutorialに記載されているようにMainActivityにインスタンスを作成しようとしました。それはどちらもうまくいかず、同じ例外があります。

コールスタック: System.Diagnostics.Debugger.Mono_UnhandledException_internal() in System.Diagnostics.Debugger.Mono_UnhandledException(Parameters) in /Users/builder/data/lanes/3236/ee215fc9/source/mono/mcs/class/corlib/System.Diagnostics/Debugger.cs:122 object.938810a8-0432-4952-a74e-f21f472a7ee6(Parameters) in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Parameters) in /Users/builder/data/lanes/3236/ee215fc9/source/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 Android.Runtime.JNIEnv.CallStaticObjectMethod(Parameters) in /Users/builder/data/lanes/3236/ee215fc9/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:1301 Worklight.Android.WLClient.CreateInstance(Parameters) in Worklight.Xamarin.Android.WorklightClient.CreateInstance(Parameters) in MyGlass.Droid.MainActivity.OnCreate(bundle) in /Users/sam/Code/AGC/MyGlass/Droid/MainActivity.cs:21 Android.Support.V4.App.FragmentActivity.n_OnCreate_Landroid_os_Bundle_(Parameters) in object.938810a8-0432-4952-a74e-f21f472a7ee6(Parameters)

ADBログ: 05-31 16:33:57.949: I/MonoDroid(8434): Java.Lang.NullPointerException: Exception of type 'Java.Lang.NullPointerException' was thrown. 05-31 16:33:57.949: I/MonoDroid(8434): at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [0x0000c] in /Users/builder/data/lanes/3236/ee215fc9/source/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 05-31 16:33:57.949: I/MonoDroid(8434): at Android.Runtime.JNIEnv.CallStaticObjectMethod (IntPtr jclass, IntPtr jmethod, Android.Runtime.JValue* parms) [0x00064] in /Users/builder/data/lanes/3236/ee215fc9/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:1301 05-31 16:33:57.949: I/MonoDroid(8434): at Worklight.Android.WLClient.CreateInstance (Android.Content.Context context) [0x00047] in <filename unknown>:0 05-31 16:33:57.949: I/MonoDroid(8434): at Worklight.Xamarin.Android.WorklightClient.CreateInstance (Android.App.Activity activity) [0x00017] in <filename unknown>:0 05-31 16:33:57.949: I/MonoDroid(8434): at MyGlass.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x00029] in /Users/sam/Code/AGC/MyGlass/Droid/MainActivity.cs:21 05-31 16:33:57.949: I/MonoDroid(8434): at Android.Support.V4.App.FragmentActivity.n_OnCreate_Landroid_os_Bundle_ (IntPtr jnienv, IntPtr native__this, IntPtr native_savedInstanceState) [0x00011] in <filename unknown>:0 05-31 16:33:57.949: I/MonoDroid(8434): at (wrapper dynamic-method) System.Object:b1885f8e-04c1-4d07-a98e-7fc5ce5bb2bb (intptr,intptr,intptr) 05-31 16:33:57.949: I/MonoDroid(8434): --- End of managed exception stack trace --- 05-31 16:33:57.949: I/MonoDroid(8434): java.lang.NullPointerException 05-31 16:33:57.949: I/MonoDroid(8434): at com.worklight.wlclient.HttpClientManager.<init>(HttpClientManager.java:86) 05-31 16:33:57.949: I/MonoDroid(8434): at com.worklight.wlclient.HttpClientManager.createInstance(HttpClientManager.java:270) 05-31 16:33:57.949: I/MonoDroid(8434): at com.worklight.wlclient.api.WLClient.createInstance(WLClient.java:231) 05-31 16:33:57.949: I/MonoDroid(8434): at md593d7a1b553c54e508e0c912cf48ed7a6.MainActivity.n_onCreate(Native Method) 05-31 16:33:57.949: I/MonoDroid(8434): at md593d7a1b553c54e508e0c912cf48ed7a6.MainActivity.onCreate(MainActivity.java:28) 05-31 16:33:57.949: I/MonoDroid(8434): at android.app.Activity.performCreate(Activity.java:5541) 05-31 16:33:57.949: I/MonoDroid(8434): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 05-31 16:33:57.949: I/MonoDroid(8434): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2368) 05-31 16:33:57.949: I/MonoDroid(8434): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2464) 05-31 16:33:57.949: I/MonoDroid(8434): at android.app.ActivityThread.access$900(ActivityThread.java:172) 05-31 16:33:57.949: I/MonoDroid(8434): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308) 05-31 16:33:57.949: I/MonoDroid(8434): at android.os.Handler.dispatchMessage(Handler.java:102) 05-31 16:33:57.949: I/MonoDroid(8434): at android.os.Looper.loop(Looper.java:146) 05-31 16:33:57.949: I/MonoDroid(8434): at android.app.ActivityThread.main(ActivityThread.java:5653) 05-31 16:33:57.949: I/MonoDroid(8434): at java.lang.reflect.Method.invokeNative(Native Method) 05-31 16:33:57.949: I/MonoDroid(8434): at java.lang.reflect.Method.invoke(Method.java:515) 05-31 16:33:57.949: I/MonoDroid(8434): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291) 05-31 16:33:57.949: I/MonoDroid(8434): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 05-31 16:33:57.949: I/MonoDroid(8434): at dalvik.system.NativeStart.main(Native Method) 05-31 16:33:58.039: W/dalvikvm(8434): JNI WARNING: JNI function CallObjectMethod called with exception pending 05-31 16:33:58.039: W/dalvikvm(8434): in Lmd593d7a1b553c54e508e0c912cf48ed7a6/MainActivity;.n_onCreate:(Landroid/os/Bundle;)V (CallObjectMethod)

+0

MainActivity内にそのプロパティがありますか?また、[this](https://blog.xamarin.com/getting-started-with-xamarin-and-ibm-worklight/)ガイドを見てきましたか?プロジェクトに '.properties'ファイルを追加しなければならないようです。 – hvaughan3

+0

いいえ、しかし、' currentActivity'はMainActivityです。はい、wlclient.propertiesファイルが含まれています。 – SamuelDebruyn

+0

私は 'MainActivity'自体でインスタンスを作成しようとしましたが、それは同じJava例外を引き起こしました。 – SamuelDebruyn

答えて

1

ファイルは先頭に次のテキストを必要としますwlclient.properties:

# Licensed Materials - Property of IBM 
# 5725-I43 (C) Copyright IBM Corp. 2011, 2013. All Rights Reserved. 
# US Government Users Restricted Rights - Use, duplication or 
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 

例外dissappearsこれは追加されました。

NB:これには空の行を付けてください。

関連する問題