首页 > 解决方案 > Revenuecat 在 Android Studio 中检查订阅者状态和购买时出现错误

问题描述

我只有订阅用户的页面。我尝试使用 Revenuecat 来了解用户是否订阅并进行购买。但我想我犯了错​​误。

我想在下面进行购买,但出现错误。

'''
公共类 VipPreferences 扩展 AppCompatActivity {

ImageView back, threemonthsvip;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_vip_preferences);
    getSupportActionBar().hide();

    StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
            .detectLeakedClosableObjects()
            .penaltyLog()
            .penaltyDeath()
            .build());
    Purchases.setDebugLogsEnabled(true);
    Purchases.configure(this, "api_key");

    back=(ImageView)findViewById(R.id.back);
    threemonthsvip=(ImageView)findViewById(R.id.threemonthsVip);

    back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            VipPreferences.super.onBackPressed();
        }
    });

    threemonthsvip.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Purchases.getSharedInstance().purchasePackage(this,package,new MakePurchaseListener() {
                @Override
                public void onCompleted(@NonNull Purchase purchase, @NonNull PurchaserInfo purchaserInfo) {
                    if (purchaserInfo.getEntitlements().get("Vip").isActive()) {
                        // Unlock that great "pro" content
                        Toast.makeText(VipPreferences.this, "Congratulations! Your payment is successful.", Toast.LENGTH_SHORT).show();
                        Intent intent=new Intent(VipPreferences.this,Vip.class);
                        startActivity(intent);
                    }
                }

                @Override
                public void onError(@NonNull PurchasesError error, boolean userCancelled) {
                    Toast.makeText(VipPreferences.this, "Something were wrong", Toast.LENGTH_SHORT).show();
                }
            });
        }
    });
}

} '''

错误图像

下面我检查 setOnClickListener 中的订阅状态,并尝试如果未订阅,则尝试打开购买选项,如果订阅,则打开活动。但是当我在应用程序运行时单击时,应用程序会直接关闭。

''' 公共类 MainActivity 扩展 AppCompatActivity {

ImageView showFree,showVip;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getSupportActionBar().hide();
    StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
            .detectLeakedClosableObjects()
            .penaltyLog()
            .penaltyDeath()
            .build());
    Purchases.setDebugLogsEnabled(true);
    Purchases.configure(this, "api_key");

    showFree=(ImageView)findViewById(R.id.showFree);
    showVip=(ImageView)findViewById(R.id.showVip);

    showFreeTips.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent=new Intent(MainActivity.this,Free.class);
            startActivity(intent);
        }
    });

    showVip.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Purchases.getSharedInstance().getPurchaserInfo(new ReceivePurchaserInfoListener() {
                @Override
                public void onReceived(@NonNull PurchaserInfo purchaserInfo) {
                    if (purchaserInfo.getEntitlements().get("Vip").isActive()) {
                        // Grant user "pro" access
                        Intent intent=new Intent(MainActivity.this,Vip.class);
                        startActivity(intent);
                    }else  {
                        Intent intent=new Intent(MainActivity.this,VipPreferences.class);
                        startActivity(intent);
                    }
                }

                @Override
                public void onError(@NonNull PurchasesError error) {

                }
            });
        }
    });
}

'''

标签: androidandroid-studioin-app-billingrevenuecat

解决方案


您面临的第一个问题是由于您package在调用purchasePackage. package是 Java 保留关键字,不能用于命名变量。您可以在此处查看 Java 保留字列表https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html

对于第二个问题,您似乎遇到了运行时异常。查看 Android Studio https://developer.android.com/studio/debug/am-logcat中的 Android Logcat以找出导致应用关闭的原因会对您有所帮助。


推荐阅读