Android アプリケーションで googlePlaces と google Map API を使用していますが、すべて正常に動作します。Proguard を有効にすると、Google マップは正常に機能しますが、Google プレイスは機能しません。すべての検索リクエストに対して結果が返されません。ログを見た後、動作しないコードの部分を見つけました:
try {
HttpRequestFactory httpRequestFactory = createRequestFactory(HTTP_TRANSPORT);
HttpRequest request = httpRequestFactory
.buildGetRequest(new GenericUrl(PLACES_SEARCH_URL));
request.getUrl().put("key", API_KEY);
request.getUrl().put("location", _latitude + "," + _longitude);
request.getUrl().put("radius", _radius); // in meters
request.getUrl().put("sensor", "false");
if(types != null)
request.getUrl().put("types", types);
PlacesList list = request.execute().parseAs(PlacesList.class);
// Check log cat for places response status
Log.d("Places Status", "" + list.status);
return list;
} catch (HttpResponseException e) {
Log.e("Error:", e.getMessage());
return null;
}
このコードは、proguard バージョンでは null を返し、通常バージョンでは結果を返します。
私はこのようにgooglePlacesで動作するすべてのクラスを維持しようとしました:
-keep public class com.example.android.mapexample.GooglePlaces
-keep public class com.example.android.mapexample.Place
-keep public class com.example.android.mapexample.PlaceDetails
-keep public class com.example.android.mapexample.PlacesList
しかし、うまくいきません。:/ 何が悪いのかわかりません。
proguard-google-api-client.txt http://textuploader.com/?p=6&id=TAEQI
proguard-project.txt http://textuploader.com/?p=6&id=HFbTF
手伝ってくれてありがとう