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
Monodroid@lists.ximian.com

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid

Reply via email to