On Jul 23, 2012, at 11:43 AM, hhodgert wrote:
> The full exception + stack trace information as obtained from the Android
> Debug Log:
...
> 07-23 15:35:06.346 I/MonoDroid( 375): UNHANDLED EXCEPTION:
> Android.Views.InflateException: Exception of type
> 'Android.Views.InflateException' was thrown.
...
> 07-23 15:35:06.346 I/MonoDroid( 375): android.view.InflateException: Binary
> XML file line #19: Error inflating class
> WebMD.Mobile.JustOneThing.Utils.TimeDialogPreference
...
> 07-23 15:35:06.346 I/MonoDroid( 375): Caused by:
> java.lang.ClassNotFoundException:
> WebMD.Mobile.JustOneThing.Utils.TimeDialogPreference in loader
> dalvik.system.PathClassLoader[/data/app/WebMD.JustOneThing-2.apk]
It's failing because it can't find the type
"WebMD.Mobile.JustOneThing.Utils.TimeDialogPreference."
Related question: Why is it using the type
"WebMD.Mobile.JustOneThing.Utils.TimeDialogPreference"? By default, we
lowerspace namespace names when generating the package names, so it should be
looking for the Java type webmd.mobile.justonething.utils.TimePreferenceDialog.
What do you have in obj\Debug\android\src\**\TimeDialogPreference.java?
Then you have both a app.Mobile.JustOneThing.Utils.TimeDialogPreference and a
WebMD.Mobile.JustOneThing.Utils.TimeDialogPreference type; that seems rather
odd (why differ in just the toplevel namespace?).
Oddest of all:
[Register ("android/preference/TimeDialogPreference", DoNotGenerateAcw
= true)]
public class TimeDialogPreference : DialogPreference
Why are you doing that? In general, [Register] shouldn't be used unless you're
binding a Java type, in which case DoNotGenerateAcw should be true, which you
do here. However, android.preference.TimeDialogPreference doesn't exist, at
least not in the Android SDK, so any attempts to use that type will fail.
Furthermore, type bindings need to satisfy many requirements, which
TimeDialogPreference doesn't do:
http://docs.xamarin.com/android/advanced_topics/Binding_Android_Types#Restrictions
Specifically, any Java.Lang.Object subclass which has a [Register] custom
attribute and for which [Register(DoNotGenerateAcw=true)] CANNOT contain any
fields which may refer to a Java.Lang.Object or subclass at runtime, which
would be _every_ field in your TimeDialogPreference declaration.
Something seems very confused... :-/
- Jon
_______________________________________________
Monodroid mailing list
[email protected]
UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid