2011-07-29 68 views
0

如何才能在我的物理測試設備上獲取許可證驗證,但不能在我的電腦上運行的仿真器上進行驗證?Android LVL僅在仿真器上不接受許可證

從模擬器進行測試時,無論我做什麼,都會收到NOT_MARKET_MANAGED錯誤。從實際的電話,它沒有問題通過。

這是因爲我的模擬器沒有安裝市場應用程序,我的測試設備呢?

回答

2

那麼,事實證明,我的模擬器在嘗試運行LVL代碼之前沒有設置Google帳戶。顯然,如果沒有在模擬器上設置Google帳戶,LVL沒有帳戶可以檢查以進行驗證。

LVL仍將在沒有安裝Android市場的模擬器上運行。

編輯

* 上運行模擬器只測試了Android 2.2的 *

* LVL不會在運行2.3或更高模擬器的工作,顯然這是一個已知的bug *

0

模擬器沒有Android Market應用程序。

+1

哈哈......是的......我知道模擬器沒有Android Market應用程式。我不確定您是否誤解了我已經知道這一點,或者您確認我無法獲得驗證的原因是因爲「模擬器沒有Android Market應用程序」。請確認這一點,因爲我喜歡接受答案。 – dell116

+0

它不會對市場進行任何授權,因爲它缺少Android Market應用程序。 –

+0

你有多確定?我拿到了許可證來驗證...查看我的答案。 – dell116

0

那麼,你有一個真正的問題:這是一個已知的錯誤。儘管如此,還有一條出路。您必須將MVC代碼與許可證檢查例程分開(有一個很好的示例here)。一旦完成在多個模擬API版本中測試您的代碼,您可以將許可證檢查活動添加到您的項目中,並在清單中將其標記爲MAIN和LAUNCHER,將該應用程序上傳到您的電話並測試身份驗證。按照評論中的說明,不要忘記進行必要的調整(例如,我必須在java文件中將庫從com.android更改爲com.google.android,但保留com.android.vending.LICENSE_CHECK該清單使用許可標籤。)

0

我知道這是一個老問題,但我只是有這個問題,並認爲我會更新答案。

我反覆得到錯誤代碼291(錯誤聯繫服務器),用於在API 15上運行仿真器的許可證檢查。根據我寫這篇文章時的「接受」答案,它說「LVL不適用於模擬器API 8/2.2 - 這是一個已知的錯誤「。

對於API 15,我使用了Google API的仿真器(包括LVL庫),並且必須進入設置並添加一個測試用戶帳戶並運行。我現在根據我的Google Play帳戶中的帳戶設置,從Google Play許可服務器獲取相應的錯誤響應。

如果您同時使用Google Play/Market應用(使用Google API模擬器並在模擬器中設置測試帳戶),則不需要該應用。下面是引用:

http://developer.android.com/google/play/licensing/setting-up.html#acct-signin

During testing, to ensure that your application can successfully query the licensing server, you must make sure that you sign in to an account on the device or emulator using: 

The credentials of a publisher account, or 
The credentials of a test account that is registered with a publisher account