2011-02-14 10 views
8

मेरे पास एक एंड्रॉइड ऐप है जो लाइसेंस जांच API का उपयोग करता है। मैंने एपीआई स्तर 8, 9, और 10 के लिए Google एपीआई के साथ एमुलेटर एवीडी सेट अप किया है। मेरा ऐप स्तर 8 एवीडी के साथ ठीक काम करता है लेकिन स्तर 9 और 10 एवीडी के साथ बुरी तरह विफल रहता है। यहाँ एक ठेठ logcat अनुक्रम है: (। मैं सत्यापित किया है कि अपने परीक्षण खाते सभी emulators में स्थापित किया है और मैं डेवलपर परीक्षण खाते के लिए लाइसेंस प्राप्त की एक प्रतिक्रिया वापस जाने के लिए कंसोल सेट कर लेते हैं)एंड्रॉइड एमुलेटर मुद्दों पर बाजार लाइसेंसिंग API

02-14 17:43:55.815: INFO/LicenseChecker(448): Binding to licensing service. 
02-14 17:43:55.935: WARN/ActivityManager(65): Unable to start service Intent { act=com.android.vending.licensing.ILicensingService }: not found 
02-14 17:43:55.935: ERROR/LicenseChecker(448): Could not bind to service. 
02-14 17:44:00.625: INFO/ActivityManager(65): Displayed com.zigzagworld.tehillim/.Tehillim: +2m1s448ms (total +5m43s546ms) 
02-14 17:44:01.085: INFO/ARMAssembler(65): generated scanline__00000177:03515104_00001002_00000000 [ 87 ipp] (110 ins) at [0x439de6f0:0x439de8a8] in 5603158 ns 
02-14 17:44:18.025: INFO/InputReader(65): Device reconfigured: id=0x0, name=qwerty, display size is now 320x480 
02-14 17:44:18.025: WARN/InputReader(65): Touch device did not report support for X or Y axis! 
02-14 17:44:19.005: WARN/InputManagerService(65): Window already focused, ignoring focus gain of: [email protected] 
02-14 17:44:20.805: ERROR/ActivityThread(448): Activity com.zigzagworld.tehillim.Tehillim has leaked ServiceConnection [email protected] that was originally bound here 
02-14 17:44:20.805: ERROR/ActivityThread(448): android.app.ServiceConnectionLeaked: Activity com.zigzagworld.tehillim.Tehillim has leaked ServiceConnection [email protected] that was originally bound here 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:938) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:833) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at android.app.ContextImpl.bindService(ContextImpl.java:864) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at android.content.ContextWrapper.bindService(ContextWrapper.java:347) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at com.android.vending.licensing.LicenseChecker.checkAccess(LicenseChecker.java:143) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at com.zigzagworld.tehillim.Tehillim.onCreate(Tehillim.java:76) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at android.os.Handler.dispatchMessage(Handler.java:99) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at android.os.Looper.loop(Looper.java:123) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at android.app.ActivityThread.main(ActivityThread.java:3647) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at java.lang.reflect.Method.invoke(Method.java:507) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
02-14 17:44:20.805: ERROR/ActivityThread(448):  at dalvik.system.NativeStart.main(Native Method) 
02-14 17:44:20.835: WARN/ActivityManager(65): Unbind failed: could not find connection for [email protected] 

मेरे LicenseCheckerCallback में dontAllow() प्रसंस्करण को पूरा करने के बाद कनेक्शन लीक करने के बारे में त्रुटि होती है।

मेरा कोड सुंदर वेनिला है। मैं onCreate() में निम्नलिखित चलाएँ:

String deviceId = Secure.getString(getContentResolver(), Secure.ANDROID_ID); 
AESObfuscator ob = new AESObfuscator(SALT, getPackageName(), deviceId); 
LicenseChecker checker = new LicenseChecker(this, 
    new ServerManagedPolicy(this, ob), BASE64_PUBLIC_KEY); 
checker.checkAccess(this); 

एपीआई 8 के बाद लाइसेंस कोड में कुछ परिवर्तन किया? क्या कोई और एपीआई 8 के अलावा किसी अन्य चीज़ में लाइसेंसिंग का परीक्षण करने में सक्षम है?

अद्यतन: Google लाइसेंस प्रदान करने वाले मार्केट लाइसेंसिंग नमूना ऐप के साथ एक ही समस्या होती है।

+1

ठीक है, जाहिर है यह एक ज्ञात समस्या, [इस सूत्र] (के अनुसार http://groups.google.com/group/android-developers/browse_thread/thread/9b1ae385f79af70b/ एंड्रॉइड डेवलपर्स फोरम पर 1d61bf8d48e9b6b4? Pli = 1)। :( –

+0

क्या कोई इस मुद्दे के लिए समाधान जानता है? – barmaley

+0

हे टेड! क्या आपको कभी इस मुद्दे का समाधान मिला? मैं इसमें भी दौड़ रहा हूं। –

उत्तर

0

सेवा से बंधे नहीं जा सकते हैं आमतौर पर इसका मतलब है कि आपने अपनी मेनिफेस्ट में उस सेवा को घोषित नहीं किया है।

Read up here

आपका माध्यमिक त्रुटि:

Activity com.zigzagworld.tehillim.Tehillim has leaked ServiceConnection [email protected] that was originally bound here 

मतलब आपकी सेवा लीक कर रहा है, तो आप इसे फाड़ जब गतिविधि समाप्त हो गया?

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    checker.onDestroy(); 
    ... 
} 

रेफरी: cleanup api

+0

मैनिफेस्ट ठीक है। (आखिरकार, यह एपीआई स्तर 8 के साथ काम करता है।) मैं पहले से ही 'onDestroy' विधि' से 'checker.onDestroy()' को कॉल कर रहा हूं। –