Xamarin Studio 6 F# Android Unit Test App NotFoundException



我在Mac上使用Xamarin Studio Community Version 6。

  1. 创建一个新的"Android/Tests/Unit Test App/F#"项目。
  2. 在模拟器中运行。

"Android/Tests/Unit Test App/C#"项目工作正常。

以下是异常详细信息:

Android.Content.Res.Resources+NotFoundException: Resource ID #0x7f020003
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/2923/52635947/source/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143
  at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (JniObjectReference instance, JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x000a7] in /Users/builder/data/lanes/2923/52635947/source/Java.Interop/src/Java.Interop/Java.Interop/JniEnvironment.g.cs:12083
  at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00068] in /Users/builder/data/lanes/2923/52635947/source/Java.Interop/src/Java.Interop/Java.Interop/JniPeerMembers.JniInstanceMethods_Invoke.cs:31
  at Android.App.Activity.SetContentView (Int32 layoutResID) [0x00017] in /Users/builder/data/lanes/2923/52635947/source/monodroid/src/Mono.Android/platforms/android-19/src/generated/Android.App.Activity.cs:4102
  at Xamarin.Android.NUnitLite.TestSuiteActivity.OnCreate (Android.OS.Bundle bundle) [0x0001b] in /Users/builder/data/lanes/2923/52635947/source/monodroid/src/NUnit/Gui/Activities/TestSuiteActivity.cs:39
  at XamarinTemplate.Core.Tests.FSharp.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x0000c] in /Users/don/dev/15x10/XamarinTemplate/XamarinTemplate.Core.Tests.FSharp/MainActivity.fs:17
  at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (IntPtr jnienv, IntPtr native__this, IntPtr native_savedInstanceState) [0x00011] in /Users/builder/data/lanes/2923/52635947/source/monodroid/src/Mono.Android/platforms/android-19/src/generated/Android.App.Activity.cs:2102
  at at (wrapper dynamic-method) System.Object:11410e9c-5bf3-4341-b40b-0fd0770022bf (intptr,intptr,intptr)
  at --- End of managed exception stack trace ---
  at android.content.res.Resources$NotFoundException: Resource ID #0x7f020003
  at at android.content.res.Resources.getValue(Resources.java:1266)
  at at android.content.res.Resources.loadXmlResourceParser(Resources.java:2649)
  at at android.content.res.Resources.getLayout(Resources.java:1082)
  at at android.view.LayoutInflater.inflate(LayoutInflater.java:412)
  at at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
  at at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378)
  at at android.app.Activity.setContentView(Activity.java:2145)
  at at md5cb9b4e367aed809f464e8979fc58f264.MainActivity.n_onCreate(Native Method)
  at at md5cb9b4e367aed809f464e8979fc58f264.MainActivity.onCreate(MainActivity.java:29)
  at at android.app.Activity.performCreate(Activity.java:5990)
  at at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
  at at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
  at at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
  at at android.app.ActivityThread.access$800(ActivityThread.java:151)
  at at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
  at at android.os.Handler.dispatchMessage(Handler.java:102)
  at at android.os.Looper.loop(Looper.java:135)
  at at android.app.ActivityThread.main(ActivityThread.java:5254)
  at at java.lang.reflect.Method.invoke(Native Method)
  at at java.lang.reflect.Method.invoke(Method.java:372)
  at at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
  at at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

有点晚了,但是,现在已经修复了。更新到最新版本的 Xamarin。请务必删除现有项目,然后创建一个新项目。模板已更新。

这是单元测试项目设置方式中的一个错误(此后已实现资源类型提供程序)并正确处理资源 ID。 https://github.com/xamarin/xamarin-android/issues/1513

最新更新