如何调用另一个包中的Application

在项目中要集成Xabber,将它作为一个Lib,

。。。。。

Xabber 原有代码

/**
* Base entry point.
*
* @author alexander.ivanov
*/
public class Application extends android.app.Application {

Xabber 中 AndroidManifest.xml

<application
       android:debuggable="true"
       android:label="@string/application_name"
       android:icon="@drawable/ic_launcher"
       android:name="com.xabber.android.data.Application"

 

把 android:name="com.xabber.android.data.Application" 放到我的项目中配置节点中,但程序一直就报错,提示Application为空,心道 艹。

 

无奈之下。

在我的项目中做了

package 我的项目中;

import android.content.res.Configuration;
import android.util.Log;

import com.xabber.android.data.Application;

public class ApplicationWapper extends Application {
    public ApplicationWapper() {
        Log.i("startup", "开始进入");

    }

 

android:name="我的项目.ApplicationWapper

 

再次启动,好了。

 

有一种可能,先在我的项目包中查找这个Application的扩展,如果没有找到,人家就不理了,就使用默认的了。但是如果我写一个新类,强制引用Xabber中的Application 它就不得不去载了。

 

由于接触Android没几天,上面也只是猜测。

而且还有一个,Dex 中对于外部引用的Jar是如何存放呢? 难道是原样打包进去?先留个问号。

如果都是原样打包的方法那就可以理解了,对于Application这种自启动类的,对于移动设备要求启动快,且处理能力有限,所以只从主Jar中查找。除非显式的如我这样来指定??????????????

有了上面这个想法,放在口边的脏话就骂了。

原文地址:https://www.cnblogs.com/zbw911/p/3751062.html