У меня был вопрос об использовании GWT-RequestFactory в Android. В качестве отправной точки я использовал код из мастера "Create a AppEngine connected Android-Project" (информация: http://code.google.com/intl/de-DE/eclipse/docs/appengine_connected_android.html), и он отлично работал.
Но теперь в моем случае я хочу расширить это приложение, чтобы использовать локальный ContentProvider с SQLite и SyncService с SyncAdapter синхронизируют данные из ContentProvider в AppEngine с помощью RequestFactory. Теперь моя проблема заключается в следующем: я могу вызвать
MyRequestFactory requestFactory = Util.getRequestFactory(mContext, MyRequestFactory.class);
в любом действии, которое я хочу, и получу экземпляр MyRequestFactory. (Примечание. Util — это класс, созданный мастером.) Но если я попытаюсь сделать тот же вызов с моего SyncAdapter, я получу java.lang.RuntimeException: Средство проверки requestFactory должно быть запущено для типа com.hotool.client.MyRequestFactory RequestFactory".
Может быть, для вашей информации: метод Util.getRequestFacory выглядит следующим образом:
/**
* Creates and returns an initialized {@link RequestFactory} of the given
* type.
*/
public static T getRequestFactory(
Context context, Class factoryClass) {
T requestFactory = RequestFactorySource.create(factoryClass);
SharedPreferences prefs = getSharedPreferences(context);
String authCookie = prefs.getString(Util.AUTH_COOKIE, null);
String uriString = Util.getBaseUrl(context) + RF_METHOD;
URI uri;
try {
uri = new URI(uriString);
} catch (URISyntaxException e) {
Log.w(TAG, "Bad URI: " + uriString, e);
return null;
}
requestFactory.initialize(new SimpleEventBus(),
new AndroidRequestTransport(uri, authCookie));
return requestFactory;
}
Ошибка возникает в RequestFactorySource, который находится в requestfactory-client.jar Я думаю, что это может быть проблемой Class-Loader, но попытался разобраться в ней без успеха.
Я попытался использовать ValidationTool, но, во-первых, это не помогло, а во-вторых, я обнаружил, что классы, которые будет генерировать ValidationTool, уже существуют (вероятно, благодаря обработке аннотаций, как упоминалось здесь: http://code.google.com/p/google-web-toolkit/wiki/RequestFactoryInterfaceValidation)
Кто-нибудь имеет представление о том, что может вызвать это?
Спасибо большое и с наилучшими пожеланиями.
Маркус Нойеншвандер