Android で Google Licensing Library (LVL) をそのまま使ってると、タイムアウトが頻繁に発生するようになりました。
解決したのでメモメモ。
解決策
LicenseChecker.java を修正。
LicenseChecker.java
mService.checkLicense(
validator.getNonce(), validator.getPackageName(),
new ResultListener(validator));
mChecksInProgress.add(validator);
// ↑これを
// ↓こう
mChecksInProgress.add(validator); // 上に持ってきた
mService.checkLicense(
validator.getNonce(), validator.getPackageName(),
new ResultListener(validator));
mChecksInProgress.add(validator) を上に持ってきただけですね。
説明
validator を mChecksInProgress に登録してますが、
これが走る前に verifyLicense が呼び出されることがあったようです。
結果、正常に処理された validator が、登録されていないと判断されスルーされていたと。
…まあ LVL くらい独自で書けよって話ですよね。