매니페스트에 응용 프로그램 클래스를 등록 하시겠습니까?


189

내 응용 프로그램의 전역 상태를 유지하기 위해 하나의 응용 프로그램 클래스가 있습니다. 하지만 매니페스트 파일에 등록 할 수 없습니까? 이 작업을 수행하는 방법을 알고 있습니까?

답변:


346

Application에서 파생 된 경우 android:name매니페스트에서 application 요소 의 매개 변수 로 정규화 된 (네임 스페이스 + 클래스 이름)을 추가하십시오 .

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

클래스 '패키지가 상대적으로 설명 할 수있는 경우 또는 packagemanifest태그 한 후 바로 시작 .:

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

    <application
        android:name=".ApplicationEx"

2
설명서에는 "정규화 된 이름"이 표시되어 있습니다. 한 번은 이것을 문자 그대로 해석하는 타사 도구를 경험했으며 상대적으로 지정된 경우 응용 프로그램 클래스를 찾을 때 작동하지 않습니다. 경고 일뿐입니다.
Jens Vesti

13

하지만 이미 branch.io의 라이브러리와 같은 라이브러리를 사용하고 있다면 아마도 매니페스트 일 것입니다.

<application name="">

속성은 이미 같은 이름을 가질 것입니다

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

이 경우 먼저 아래와 같이 응용 프로그램 클래스를 확장해야합니다.

public class Application extends BranchApp

그런 다음 매니페스트에 응용 프로그램을 다음과 같이 등록하십시오.

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

이것은 나를 위해 완벽하게 작동합니다 :) 나는 그것이 곤경에 처한 누군가를 돕기를 바랍니다 :)


그것은 당신 이이 답변을 썼지 만 동시에 branch.io와 clevertap을 추가하고 싶다면 어떻게해야합니까? 매니페스트에서 이름 태그를 처리하는 방법을 혼란스럽게합니다. 도와주세요.
jitendra purohit

7

MultiDex 응용 프로그램을 사용하는 경우 이미 "android : name"을 사용하고 있으므로 확장하십시오 android.support.multidex.MultiDexApplication.

public class MyApplication extends MultiDexApplication {...}

그리고 Android 매니페스트에 추가하십시오.

android:name="app.package.MyApplication"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.