203

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

4

4 回答 4

381

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

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

或者,如果类的包可以描述为相对于package标签中的manifest,那么只需以 a 开头.

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

    <application
        android:name=".ApplicationEx"
于 2010-05-28T14:37:13.920 回答
13

但如果你已经在使用一些库,比如 branch.io 的库,那么很可能是你的清单

<application name="">

属性已经有一些名字,比如

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

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

public class Application extends BranchApp

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

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

这对我来说非常有效:)我希望它可以帮助遇到麻烦的人:)

于 2016-04-07T19:29:34.210 回答
7

如果您使用的是 MultiDex 应用程序,您将已经使用“android:name”,因此请改为扩展android.support.multidex.MultiDexApplication

public class MyApplication extends MultiDexApplication {...}

并将其添加到 Android 清单中:

android:name="app.package.MyApplication"
于 2016-08-20T10:43:55.267 回答
0

如果该活动作为依赖项包含在内,您可以启动一个类,这应该在 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"/>

于 2021-02-04T20:03:50.630 回答