如何调用另一个包中的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中查找。除非显式的如我这样来指定??????????????
有了上面这个想法,放在口边的脏话就骂了。