2

我想创建自己的 Application 对象,类似于以下内容:

namespace MyNameSpace.Android
{
    public class MyApplication : Application
    {
        public override void OnCreate()
        {
            base.OnCreate();

            // do application specific things here
        }
    }
}

如何让应用程序使用该MyApplication对象?我的理解是我必须在清单中指定这一点,但我无法让它发挥作用。该应用程序部署良好,但之后无法运行。

这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
          android:installLocation="preferExternal" 
          package="abc.mypackage">
    <uses-sdk android:targetSdkVersion="14" />
    <application android:label="MyMobileApp" 
               android:theme="@style/Theme.FullScreen" 
               android:screenOrientation="portrait" 
               android:icon="@drawable/Logo" 
               android:name=".MyNameSpace.Android.MyApplication"/>
</manifest>

请注意,我已经尝试了属性中大小写字母的所有变体android:name=".MyNameSpace.Android.MyApplication",包括带和不带前导.字符。

如果我删除该行,应用程序运行良好。

4

1 回答 1

3

解决方案是将以下类 Attribute & Constructor 添加到我的自定义应用程序类中:

namespace MyNameSpace.Android
{
    [Application(Debuggable = true, ManageSpaceActivity = typeof(MyMainActivity))]
    public class MyApplication : Application
    {

        public MyApplication(IntPtr javaReference, JniHandleOwnership transfer)
            : base(javaReference, transfer)
        {
        }

        public override void OnCreate()
        {
            base.OnCreate();

            // do application specific things here
        }

    }
}
于 2013-09-23T11:05:35.500 回答