我为我的Flavor名称设置了常量:
public static final String FLAVOR_NAME_PRO = "pro";
public static final String FLAVOR_NAME_FREE = "free";
在我的Activity的onCreate()中,我为布尔mUsingProFlavor分配一个值:
mUsingProFlavor = BuildConfig.FLAVOR.equals(FLAVOR_NAME_PRO);
在稍后创建的clickListener中,我有以下内容:
if (mUsingProFlavor) {
customerId = getCustomerId();
Intent intent = new Intent(MainActivity.this, CustomerProfileActivity.class);
intent.putExtra("customerId", customerId);
startActivity(intent);
} else {
showProOnlyFeatureAlertDialog(MainActivity.this, mAlertDialog);
}
这是用户访问CustomerProfileActivity的唯一方法,但是我却以某种方式收到崩溃报告,表明我的一个免费用户正在CustomerProfileActivity内部崩溃。
知道这怎么可能吗?
答案 0 :(得分:-2)
if (mUsingProFlavor) {
customerId = getCustomerId();
Intent intent = new Intent(MainActivity.this, CustomerProfileActivity.class);
intent.putExtra("customerId", customerId);
startActivity(intent);
} else {
showProOnlyFeatureAlertDialog(MainActivity.this, mAlertDialog);
}
您的-> if(mUsingProFlavor)是这里的问题。 由于mUsingProFlavor是字符串,因此您必须修改if-check。目前,它充当布尔值。
if (mUsingProFlavor.equals("pro")) {
customerId = getCustomerId();
Intent intent = new Intent(MainActivity.this, CustomerProfileActivity.class);
intent.putExtra("customerId", customerId);
startActivity(intent);
} else {
showProOnlyFeatureAlertDialog(MainActivity.this, mAlertDialog);
}