Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 应用内计费在BillingProcessor.purchase后不显示弹出消息_Android_In App Billing - Fatal编程技术网

Android 应用内计费在BillingProcessor.purchase后不显示弹出消息

Android 应用内计费在BillingProcessor.purchase后不显示弹出消息,android,in-app-billing,Android,In App Billing,我还不熟悉Android的应用内计费。 我已经尝试了与本教程完全相同的方法,但从未获得弹出窗口。 这是链接 这是我的密码 main活动 public class MainActivity extends AppCompatActivity implements BillingProcessor.IBillingHandler { BillingProcessor bp; Button purchase; @Override protected void on

我还不熟悉Android的应用内计费。 我已经尝试了与本教程完全相同的方法,但从未获得弹出窗口。 这是链接

这是我的密码

main活动

public class MainActivity extends AppCompatActivity implements BillingProcessor.IBillingHandler {
    BillingProcessor bp;
    Button purchase;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        bp = new BillingProcessor(this, null, this);
        purchase = (Button) findViewById(R.id.purchase);

        purchase.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                bp.purchase(MainActivity.this, "android.test.purchased");
            }
        });

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                bp.purchase(MainActivity.this, "android.test.purchased");
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();

        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    @Override
    public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details) {
        showToast("You Have Purchased The Product");
    }

    @Override
    public void onPurchaseHistoryRestored() {

    }

    @Override
    public void onBillingError(int errorCode, @Nullable Throwable error) {
        showToast("An Error Has Occurred");
    }

    @Override
    public void onBillingInitialized() {

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
        if(!bp.handleActivityResult(requestCode, resultCode, data)){
            super.onActivityResult(requestCode, resultCode, data);
        }
    }

    @Override
    public void onDestroy(){
        if(bp != null){
            bp.release();
        }
        super.onDestroy();
    }

    private void showToast(String message) {
        Toast.makeText(this, message, Toast.LENGTH_LONG).show();
    }
}
我已经在build.gradle应用程序中添加了这个

compile 'com.anjlab.android.iab.v3:library:1.0.+'
在AndroidManifest中,我也添加了计费权限

<uses-permission android:name="com.android.vending.BILLING" />


我真的被卡住了,即使我试着和教程完全一样。请您帮助解决问题。

在最新版本的google pay中,许可证密钥和产品Id不能再为空。您必须以产品ID和开发者许可证密钥在控制台中的方式创建alpha版本

此外,在发布alpha版本后,您必须等待大约30分钟才能测试您的账单

希望有帮助


(确保已添加INTERNET权限;将build.gradle中的“+”符号替换为更改日志中的版本)

。。。你的问题/错误是什么?如果您有错误,请向我们显示日志。如果你在理解某件事上有问题,就说出来。谢谢你的回答!所以,我需要创建真实的产品ID来测试应用内计费虚拟机?如果我创建产品ID,我还能使用android.test.purchased吗?不,你不能(据我所知)。。。你的代码是完美的…你不需要担心你的错误。当您准备发布时,请使用相同的代码…它会起作用的。(你需要真正的密钥)还有一件事,当你alpha发布你的apk时,确保添加测试电子邮件并接受来自这些人的邀请。这就是google pay现在的工作方式…好的,我会先尝试创建产品ID,然后看看它是否有效。。谢谢美好的谢谢阿克什的帮助。看来你的解决方案是正确的!