用户以某种方式访问​​了免费版的Pro功能

时间:2018-09-07 05:14:41

标签: android build

我为我的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内部崩溃。

知道这怎么可能吗?

1 个答案:

答案 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);
}