Как использовать GWT-RequestFactory в Android SyncAdapter (всегда получает ValidationTool-Error)

У меня был вопрос об использовании 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)

Кто-нибудь имеет представление о том, что может вызвать это?

Спасибо большое и с наилучшими пожеланиями.

Маркус Нойеншвандер

6
задан Qsi 8 November 2011 в 12:28
поделиться