2014-06-17 5 views
1

"google-api-services-mapsengine"(버전 1.18.0-rc) 라이브러리를 사용 중이며 Google지도에서 select를 시도 할 때 무엇이 잘못되었는지, 내가 발견 한 두 가지를 찾고 후양면 IllegalArgumentException : google-api-services-mapsengine 키 기하학

java.lang.IllegalArgumentException: key geometry 
    at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:871) 
    at com.google.api.client.json.JsonParser.parse(JsonParser.java:374) 
    at com.google.api.client.json.JsonParser.parse(JsonParser.java:347) 
    at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:87) 
    at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:81) 
    at com.google.api.client.http.HttpResponse.parseAs(HttpResponse.java:459) 
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460) 

답변

0

이이 버그의 인스턴스입니다 : https://code.google.com/p/google-api-java-client/issues/detail?id=867.

그 동안 최선의 해결 방법은 선택 문자열에 'geometry'를 포함 시키거나 완전히 생략하는 것입니다. 생성 된 클라이언트 라이브러리는 변경하지 마십시오. 코드를 수정하지 않고 이후 버전으로 업그레이드 할 수 없으며 예기치 않은 부작용이있을 수 있습니다.이 경우 지오메트리 필드를 전혀 검색하지 못할 수도 있습니다.

편집 : 오, 당신이 영향을 받는다는 것을 보여주는 버그를 '별표 표시'하면 Google이 좋아합니다.

EDIT2 :이 버그는 이제 수정되었으므로 최신 버전의 Maps Engine 클라이언트 라이브러리 (rev44 이상)를 다운로드하고 어떻게 진행되는지 확인하십시오.

1

: 나는이 문제에 직면

com.google.api.services.mapsengine.MapsEngine.Tables.Features.List aRequest = myObj.getInstance().mapsEngine.tables().features().list(ASSET_ID_USER).setMaxResults((long) 1000) 
        .setSelect("num_dept") 
        .setWhere("mail='"+email+"'"); 

: 엔진이 코드를 사용하여 "해결"하기 위해/ 1, 당신은을 선택해야합니다 이 코드와 같은 형상 필드 : com.google.api.services.mapsengine.Maps (ASSET_ID_USER) .setMaxResults ((long) 1000) .setSelect ("num_dept, geometry") .setWhere .SetWhere ("num_dept, geometry") .setSelect ("mail = '"+ 이메일 + "'");

2/몇 시간 후에 문제가 무엇인지 발견했으며이 수업에서 제공됩니다. package com.google.api.services.mapsengine.model; /** * ........ * ........ * @author 구글, 주식 */ @SuppressWarnings ("javadoc의") 공공 최종 클래스의 기능이 확장 닷컴 .google.api.client.json.GenericJson {

/** 
    * The geometry member of this Feature. 
    * The value may be {@code null}. 
    */ 
    @com.google.api.client.util.Key 
    private GeoJsonGeometry geometry; 

이 코드를 작업 할 com.google.api.client.util.Key @이 줄 을 언급해야한다 :

com.google.api.services.mapsengine.MapsEngine.Tables.Features.List aRequest = myObj.getInstance().mapsEngine.tables().features().list(ASSET_ID_USER).setMaxResults((long) 1000) 
         .setSelect("num_dept") 
         .setWhere("mail='"+email+"'"); 

좋은 소식 일 수 있습니다. 도서관에서 직접 고칠 수 있습니다.

감사합니다, 세바스티안