Đăng ký lớp học tại Manifest?


189

Tôi có một lớp Ứng dụng để giữ trạng thái toàn cầu của ứng dụng của mình. Nhưng tôi không thể đăng ký nó trong tập tin kê khai? Bất kỳ ý tưởng làm thế nào để làm điều này?

Câu trả lời:


346

Nếu nó xuất phát từ Ứng dụng, hãy thêm đủ điều kiện (không gian tên + tên lớp) làm android:nametham số của thành phần ứng dụng trong tệp kê khai của bạn.

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

Hoặc nếu gói của lớp có thể được mô tả là có liên quan đến thẻ packagetrong manifestthẻ, thì chỉ cần bắt đầu bằng .:

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

    <application
        android:name=".ApplicationEx"

2
Các tài liệu nói "tên đủ điều kiện". Tôi đã có một lần trải nghiệm một công cụ của bên thứ 3 diễn giải điều này theo nghĩa đen và không hoạt động khi cố gắng tìm lớp ứng dụng, nếu được chỉ định tương đối. Chỉ là một cảnh báo.
Jens Vesti

13

nhưng trong trường hợp bạn đã sử dụng một số thư viện như thư viện của Branch.io thì rất có thể là bảng kê khai của bạn

<application name="">

tài sản sẽ có một số tên như

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

trong trường hợp đó, trước tiên bạn cần mở rộng lớp ứng dụng của mình, như dưới đây:

public class Application extends BranchApp

và sau đó đăng ký ứng dụng của bạn trong bảng kê khai như:

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

Điều này hoạt động hoàn hảo với tôi :) tôi hy vọng nó sẽ giúp ai đó gặp rắc rối :)


đã được một lúc bạn viết câu trả lời này nhưng nếu tôi muốn thêm Branch.io và clevertap cùng một lúc. Tôi đang bối rối làm thế nào để đối phó với thẻ tên trong bảng kê khai. hãy giúp tôi ra.
jitendra purohit

7

Nếu bạn đang sử dụng ứng dụng MultiDex, bạn sẽ sử dụng "android: name" để thay vào đó mở rộng android.support.multidex.MultiDexApplication:

public class MyApplication extends MultiDexApplication {...}

Và thêm nó vào bảng kê khai Android:

android:name="app.package.MyApplication"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.