2012-02-24 54 views
0

我有一个空白最终字段在我的活动
该值在编译时不知道,必须从构造函数中初始化。访问来自活动构造函数的包信息

要初始化字段,我从构造函数中访问getPackageName()。不幸的是,这导致NullPointerException

是否有任何方法从构造函数中访问包名或其他Manifest信息?

private String packageName; 
final private boolean proVersion; 

// Constructor: for initialization of blank final variables 
public myActivity() { 
    packageName = getPackageName().toLowerCase(); 
    proVersion = appVersion(); 
} 
+0

post ur code pls – 2012-02-24 10:37:37

回答

0

是否必须是“最终”?

如果不是,您可以调用getPackageName()并获取onCreate()中的值而不是构造函数。

如果它必须是最终的,您可能必须通过硬编码来分配值;

+0

final字段无法在onCreate()中初始化。在构造函数之后调用onCreate(),这太迟了并导致错误。 – tos 2012-02-24 10:41:07

+0

我更喜欢它是最终的,以便在编译时知道死代码并从apk中完全删除。 – tos 2012-02-24 10:43:06