我有一个android应用程序,我内部依赖于几个库。现在,我试图记录在单个组件级别(即单个库级别)发生的崩溃,以便它有助于我分析导致崩溃的组件。
public class MyApplication extends Application implements Thread.UncaughtExceptionHandler {
public static final String TAG = "myapplication";
public static MyApplication applicationInstance;
public MyApplication() {
Thread.setDefaultUncaughtExceptionHandler(this);
}
@Override
public Context getApplicationContext() {
return super.getApplicationContext();
}
public static MyApplication getInstance() {
return applicationInstance;
}
@Override
public void onTerminate() {
super.onTerminate();
}
@Override
public void onLowMemory() {
super.onLowMemory();
}
@Override
public void onTrimMemory(int level) {
super.onTrimMemory(level);
}
@Override
public void uncaughtException(Thread t, Throwable e) {
Log.i(TAG, "Inside uncaught exception..." + Thread.currentThread().getId());
//getPackageName() here returns the name of the application instead of the dependent library's one.
}
}
是否有任何方法可以获取在其Android清单中添加的库的软件包名称?
答案 0 :(得分:2)
不是。库没有应用程序ID。清单中的package
属性仅用于代码生成,仅此而已。
如果您碰巧从库中获得了一个对象,则可以获取与该类关联的Java包,并且也许可以从那里推断出您要引用的库。