2012-09-05 266 views
3

大家好:)我想实现我的应用程序应用内结算,看在GitHub上我做这个RobotMedia的自述:我与试图requestPurchase RobotMedia没有做任何事情

这样的:

aba = new AbstractBillingActivity() { 

     @Override 
     public String getPublicKey() { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public byte[] getObfuscationSalt() { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public void onSubscriptionChecked(boolean supported) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onRequestPurchaseResponse(String itemId, ResponseCode response) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onPurchaseStateChanged(String itemId, PurchaseState state) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onBillingChecked(boolean supported) { 
      // TODO Auto-generated method stub 

     } 
    }; 

BYT当我尝试这样做:

aba.checkBillingSupported(); 

这gaves我NullPointerException异常的变量 “ABA”

编辑

我已经这样做了:

public class Index extends AbstractBillingActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_index); 

     checkBillingSupported(); 


     Button buy = (Button) findViewById(R.id.compra); 
     buy.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       requestPurchase("android.test.purchased"); 


      } 
     }); 

    } 

    @Override 
    public byte[] getObfuscationSalt() { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public String getPublicKey() { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public void onBillingChecked(boolean supported) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onSubscriptionChecked(boolean supported) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onPurchaseStateChanged(String itemId, PurchaseState state) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onRequestPurchaseResponse(String itemId, ResponseCode response) { 
     // TODO Auto-generated method stub 

    } 

} 
+1

你不觉得,抽象类的子类应该通过Your_class extends AbstractBillingActivity()。 – skygeek

回答

-1

如果您使用BillingController直接您还需要实现IBillingObserver,并onPurchaseIntent尤其如此。

你可能想通过查看DungeonsRedux(示例代码),也许使用AbstractBillingActivity抢先与IAB认识开始。

关于你的最新的编辑,你不应该有一个构造函数创建活动,除非你真的是说真的。看起来你得到一个空指针异常,因为你的变量为空,它可能与使用new创建一个活动有关。

我强烈建议您从IAB API guide开始,一旦您对IAB的核心概念感到满意,然后转到图书馆。

+0

我已经用IBillingObserver编辑了我的答案,它总是不会显示任何东西。你能给我一个例子:) –

+0

请看DungeonsRedux的一个非常详细的例子。 – hpique

+0

在dungeonRedux中没有IBillingObserver可以看到 –