SORU
17 Mart 2013, Pazar


Fatura v3 İabHelper NullPointerException API

edit 4 / 15:İabHelper içinde nullpointer alıcı bu sorun durdurmuş gibi görünür. Artık özel durumlar atılan görüyorum, bir cevap olarak kabul edeceğim.


4/04 düzenleme:Daha derin bir dalış biraz. QueryPurchases yöntemi RemoteExceptions ve JSONExceptions kolu try-catch bloğu var, ama NullPointerException kullanma. Denemek için gidiyorum ne kadar İabHelper querySkuDetails çalışırken bu gibi görünüyor NullPointer vardır

    catch (NullPointerException e) {
        throw new IabException(IABHELPER_UNKNOWN_ERROR, "NullPointer while refreshing inventory.", e);
    }

Ben sadece bu konuda bir hata yayımlandı:

https://code.google.com/p/marketbilling/issues/detail?id=114


3/25 düzenleme:Peki, bu kazanın hala alınıyor... şimdi İabHelper aşağıdaki alıntının satır 3 bir içerik almaya çalışırken oluyor:

int queryPurchases(Inventory inv, String itemType) throws JSONException, RemoteException {
    logDebug("Querying owned items, item type: "   itemType);
    logDebug("Package name: "   mContext.getPackageName());

Bu benim apaçık çünkü sinir bozucu ben her zaman için benim app tam yol adı kullanın"". name

Örneğin, "com.myappname.falan filan.". Code

Ayrıca bu geçen Sınıfım çalıştım.bu, getApplicationContext() mHelper. Ancak hepsi rastgele vahşi cihazlardan NullPointer aynı sonucu verir. Ben de adı=çalıştı".Sınıfım" manifest. Şu anda bu gibi görünüyor

mHelper = new IabHelper(MyClass.this, myKey);

edit3/18/13: hala istisnalar alıyorum, yeni İabHelper sürümü 3/17 dağıtılmış bile.

Çöküyor mContext yürütürken bir içerik almaya çalışırken tüm bu burada bir örüntü görmeye başlıyorum.() getPackageName. Bu benim test cihazları üzerinde çalışır neden merak ediyorum, ve bu kaza sunamayacağı ve cihazlar üzerinde az sayıda gibi görünüyor.

İşte yeni crash:

java.lang.NullPointerException
    at com.myapp.util.IabHelper.queryPurchases(SourceFile:836)
    at com.myapp.util.IabHelper.queryInventory(SourceFile:558)
    at com.myapp.util.IabHelper.queryInventory(SourceFile:522)
    at com.myapp.util.IabHelper$2.run(SourceFile:617)
    at java.lang.Thread.run(Thread.java:1019)

İabHelper neden...

line 836: logDebug("Package name: "   mContext.getPackageName());

edit3/17/13: birçok hata düzeltmeleri, son birkaç ay içinde yayınlanmış olduğunu görüyorum, en son kodun burada deneyin ve eğer bu sorunu çözer diye

https://code.google.com/p/marketbilling/source/browse/v3/src/com/example/android/trivialdrivesample/util


Uygulamalarım, fatura API kullanıyorum ve demirbaş kodu ile birlikte.

Fatura API son sürümü 3/16/2013 olarak SDK manager üzerinden kullanıyorum.

Benim etkinlik, aşağıdakileri kullanarak: stok sorgu

final List<String> skuList = new ArrayList<String>();
skuList.add("sku1");
skuList.add("sku2");
skuList.add("sku3");
if (skuList != null) {
    if (skuList.size() > 0) {
        try {
            mHelper.queryInventoryAsync(true, skuList, mGotInventoryListener);
        } catch (Exception e) { 
            ACRA.getErrorReporter().handleException(e);
        }
    }
}

Aşağıdaki cihazlar için İabHelper sınıfından vahşi birden fazla NullPointerException raporlar alıyorum. Sorunu yeniden oluşturma ve bu kaza ile ilgili herhangi bir bilgi bulamadım yapamam, bu soru gönderiyorum nedeni de budur.

Ben sayısız diğer kontrolleri için, boşluk ve try/catch blokları içinde "geliştirici bakan" bölümünün fatura API dahil içinde onQueryİnventoryFinished biliyorum, yani bu istisna değil atılan bir "kod" (çünkü değilim yakalama çöküyor herhangi bir uygulamamın sınıflar), ancak bunun yerine varlık atılan içinden İabHelper kendisi. Bu İabHelper bu, önerilen düzeltme dışında değişiklik yok: http://stackoverflow.com/a/14737699

#1 Galaxy Nexus Kazası

java.lang.NullPointerException
    at com.myapp.util.IabHelper.querySkuDetails(SourceFile:802)
    at com.myapp.util.IabHelper.queryInventory(SourceFile:471)
    at com.myapp.util.IabHelper$2.run(SourceFile:521)
    at java.lang.Thread.run(Thread.java:856)

İabHelper neden...

line 802: Bundle skuDetails = mService.getSkuDetails(3, mContext.getPackageName(), ITEM_TYPE_INAPP, querySkus);    

#2 Samsung çarpışma S5570L GT

java.lang.NullPointerException
    at com.myapp.util.IabHelper.queryPurchases(SourceFile:735)
    at com.myapp.util.IabHelper.queryInventory(SourceFile:465)
    at com.myapp.util.IabHelper$2.run(SourceFile:521)
    at java.lang.Thread.run(Thread.java:1019)

İabHelper neden...

line 735: Bundle ownedItems = mService.getPurchases(3, mContext.getPackageName(), ITEM_TYPE_INAPP, continueToken);

CEVAP
19 Mart 2013, Salı


edit 4 / 15:İabHelper içinde nullpointer alıcı bu sorun durdurmuş gibi görünür. Artık özel durumlar atılan görüyorum, bir cevap olarak kabul edeceğim.


4/04 düzenleme:Daha derin bir dalış biraz. QueryPurchases yöntemi RemoteExceptions ve JSONExceptions kolu try-catch bloğu var, ama NullPointerException kullanma. Denemek için gidiyorum ne kadar İabHelper querySkuDetails çalışırken bu gibi görünüyor NullPointer vardır

    catch (NullPointerException e) {
        throw new IabException(IABHELPER_UNKNOWN_ERROR, "NullPointer while refreshing inventory.", e);
    }

Ben sadece bu konuda bir hata yayımlandı:

https://code.google.com/p/marketbilling/issues/detail?id=114

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bunnyboxx

    bunnyboxx

    17 NİSAN 2008
  • MaximumPCMag

    MaximumPCMag

    23 Temmuz 2010
  • Yanko Kral

    Yanko Kral

    8 HAZİRAN 2006