在Manifest中注册应用程序类?

时间:2010-05-28 13:53:48

标签: android android-manifest

我有一个Application类来保持我的应用程序的全局状态。但是我无法在Manifest文件中注册它?知道怎么做吗?

4 个答案:

答案 0 :(得分:296)

如果它派生自Application,则在清单中添加完全限定(名称空间+类名称)作为应用程序元素的android:name参数。

<application
        android:name="com.you.yourapp.ApplicationEx"

或者,如果可以将类的包描述为相对于package标记中的manifest,那么只需从.开始:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.you.yourapp">

    <application
        android:name=".ApplicationEx"

答案 1 :(得分:8)

但是如果您已经使用了像branch.io的库那样的库那么很可能是你的清单

<application name="">

属性已经有一些名称,如

`<application name="io.referral.BranchApp">

在这种情况下,您需要首先扩展您的应用程序类,如下所示:

public class Application extends BranchApp

然后在清单中注册您的应用程序:

android:name="absdevelopers.com.brankreferal.Application"

这对我来说很完美:) 我希望它可以帮助陷入困境的人:)

答案 2 :(得分:5)

如果您使用的是MultiDex应用程序,那么您已经使用了“android:name”,而是扩展android.support.multidex.MultiDexApplication

public class MyApplication extends MultiDexApplication {...}

并将其添加到Android清单中:

android:name="app.package.MyApplication"

答案 3 :(得分:0)

如果 Activity 作为依赖项包含在内,您可以启动一个类,这应该会在 2021 年解决。

tools:ignore="MissingClass" 添加到 Android 清单文件中的活动元素

示例

<activity
            android:name="com.google.android.gms.oss.licenses.OssLicensesActivity"
            android:screenOrientation="portrait"
            android:theme="@style/LicensesTheme"
            tools:ignore="MissingClass"/>