我从git获取foursquare示例java代码和相同的示例值并在我的本地计算机上运行,但得到以下异常。 这是我的代码:
String ll = args.length > 0 ? args[0] : "44.3,37.2";
try {
FourSquareSampleMain fourSquareSample = new FourSquareSampleMain();
fourSquareSample.searchVenues(ll);
} catch (FoursquareApiException e) {
// TODO: Error handling
e.printStackTrace();
}
}
public void searchVenues(String ll) throws FoursquareApiException {
// First we need a initialize FoursquareApi.
FoursquareApi foursquareApi = new FoursquareApi("CLIENT_ID",
"CLIENT_SECRET", null);
// After client has been initialized we can make queries.
Result<VenuesSearchResult> result = foursquareApi.venuesSearch(ll, null, null, null, null, null, null, null,
null, null, null, null, null);
if (result.getMeta().getCode() == 200) {
CompactVenue[] venueList = result.getResult().getVenues();
System.out.println("Compact Venue List size : " + venueList.length);
// if query was ok we can finally we do something with the data
for (CompactVenue venue : venueList) {
// TODO: Do something we the data
System.out.println("Venue Name : " + venue.getName());
}
System.out.println("End of IF Loop: ");
} else {
// TODO: Proper error handling
System.out.println("Error occured: ");
System.out.println(" code: " + result.getMeta().getCode());
System.out.println(" type: " + result.getMeta().getErrorType());
System.out.println(" detail: " + result.getMeta().getErrorDetail());
}
}
venueList
的大小总是&#34; 0&#34;,但是当我调试它时,它会引发以下异常:
&#34; org.eclipse.debug.core.DebugException:com.sun.jdi.ClassNotLoadedException:检索数组的组件类型时未加载类型。&#34;
但是当我改变纬度和经度值时很奇怪,
String ll = "-33.883056 , 151.216667";// latlong surry hills sydney
我得到以下异常:
fi.foyt.foursquare.api.FoursquareApiException:org.json.JSONException:JSONObject [&#34; icon&#34;]不是字符串。 at fi.foyt.foursquare.api.JSONFieldParser.parseEntity(JSONFieldParser.java:143) 在fi.foyt.foursquare.api.JSONFieldParser.parseValue(JSONFieldParser.java:194) at fi.foyt.foursquare.api.JSONFieldParser.parseEntity(JSONFieldParser.java:141) at fi.foyt.foursquare.api.JSONFieldParser.parseEntities(JSONFieldParser.java:57) at fi.foyt.foursquare.api.FoursquareApi.venuesSearch(FoursquareApi.java:1017) 在FourSquareSampleMain.searchVenues(FourSquareSampleMain.java:57) 在FourSquareSampleMain.main(FourSquareSampleMain.java:43) 引起:org.json.JSONException:JSONObject [&#34; icon&#34;]不是字符串。 at org.json.JSONObject.getString(JSONObject.java:658) 在fi.foyt.foursquare.api.JSONFieldParser.parseValue(JSONFieldParser.java:202) at fi.foyt.foursquare.api.JSONFieldParser.parseEntity(JSONFieldParser.java:141)
我在这里缺少什么?请建议。
答案 0 :(得分:1)
我找到了解决方法。它是一个补丁,但它确实有效。详细说明:
fi.foyt.foursquare.api.entities
下的项目中,然后将其添加到注1 :当您在yur项目中替换类(相同的包和类名)时,clasloader将使用您的而不是jar依赖项提供的类,因此,有一个快速修复。 我做到了,它就像一个魅力
注意2 :更新sdk后,应立即删除此修补程序并升级sdk依赖项
希望有所帮助