2013-10-30 30 views
2

我在我的android應用程序中使用googlePlaces和Google地圖API時,一切正常。當啓用Proguard時,Google地圖工作正常,但Google地方信息無效,它不會返回任何搜索請求的結果。看到日誌後,我發現的代碼部分不工作:GooglePlaces在使用proguard時不起作用

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; 
    } 

此代碼返回null與ProGuard的版本,並返回與普通版本的結果。

我試圖保持與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的,谷歌的API-client.txt http://textuploader.com/?p=6&id=TAEQI

proguard的-project.txt http://textuploader.com/?p=6&id=HFbTF

感謝您的幫助

回答

3

解決這一問題保持序列化類之後至極使用谷歌地圖API

-keepnames class * implements java.io.Serializable 

-keepclassmembers class * implements java.io.Serializable { 
    static final long serialVersionUID; 
    private static final java.io.ObjectStreamField[] serialPersistentFields; 
    !static !transient <fields>; 
    !private <fields>; 
    !private <methods>; 
    private void writeObject(java.io.ObjectOutputStream); 
    private void readObject(java.io.ObjectInputStream); 
    java.lang.Object writeReplace(); 
    java.lang.Object readResolve(); 
} 
+0

解決了我的問題! – user987760

相關問題