ลงทะเบียนคลาสแอปพลิเคชันใน Manifest หรือไม่


189

ฉันมีหนึ่งคลาสแอปพลิเคชันเพื่อรักษาสถานะทั่วโลกของใบสมัครของฉัน แต่ฉันไม่สามารถลงทะเบียนในไฟล์ Manifest ได้? ความคิดใด ๆ วิธีการทำเช่นนี้?

คำตอบ:


346

หากมาจากแอปพลิเคชันให้เพิ่มชื่อเต็ม (เนมสเปซ + คลาส) เป็น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"

2
เอกสารระบุว่า "ชื่อครบถ้วน" ฉันมีประสบการณ์ครั้งเดียวกับเครื่องมือของบุคคลที่สามที่ตีความสิ่งนี้อย่างแท้จริงและไม่ทำงานเมื่อพยายามหาคลาสแอปพลิเคชันหากระบุไว้ค่อนข้าง เพียงแค่คำเตือน
Jens Vesti

13

แต่ในกรณีที่คุณใช้ห้องสมุดบางอย่างอยู่แล้วเช่น library ของ branch.io อาจเป็นรายการของคุณ

<application name="">

สถานที่ให้บริการจะมีชื่อบางอย่างเช่น

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

ในกรณีนี้คุณต้องขยายคลาสแอปพลิเคชันของคุณก่อนดังนี้

public class Application extends BranchApp

จากนั้นลงทะเบียนแอปพลิเคชันของคุณในรายการเป็น:

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

ทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน :) ฉันหวังว่าจะช่วยคนที่มีปัญหา :)


มันเป็นเวลาที่คุณเขียนคำตอบนี้ แต่ถ้าฉันต้องการเพิ่ม branch.io และ clevertap ในเวลาเดียวกัน ฉันสับสนในการจัดการกับแท็กชื่อในไฟล์ Manifest กรุณาช่วยฉันออกไป.
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.