2017-12-13 11 views
0

안녕하세요 내가 inAppPurchase에 대한 BillingFlow를 시작하고 싶다면 예외가 발생합니다 : ArrayOutOfBound. 6 번째 줄에서는이 목록의 매개 변수 앞에 설정했기 때문에이 목록이 null 일 수 없습니다. 그래서 "skuDetailsList.get (0)"을 호출하여 왜이 예외가 throw되는지 알 수 있습니다.애플 리케이션에서 빌링 OutOfBoundException

List<String> skuList = new ArrayList<>(); 
     skuList.add("premium_upgrade"); 
     SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder(); 
     params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP); 
     mBillingClient.querySkuDetailsAsync(params.build(),(responseCode,skuDetailsList) -> { 
      SkuDetails skuDetails = skuDetailsList.get(0); 
      String sku = skuDetails.getSku(); 
      BillingFlowParams.Builder builder = BillingFlowParams.newBuilder().setSku(sku).setType(BillingClient.SkuType.INAPP); 
      mBillingClient.launchBillingFlow(this,builder.build()); 
       }); 

답변

0

ArrayOutOfBoundException은 배열의 범위를 벗어난 데이터에 액세스하려고한다고합니다. 때문에, 당신은 점점 라인 skuDetailsList.get(0)에서 예외에이 (가) skuDetailsList

것은 당신이 코드를 디버깅하고 skuDetailsList

적절한 결과를 얻고 있는지 확인하여보십시오 목록에서 위치 0에서 데이터가 없음을 말한다