1

gwt アプリと同じ requestfactories を使用して、Android アプリケーションがサーバーと通信できるようにしようとしています。Androidアプリとgwtアプリの両方をビルドするためにmavenを使用しています。Android で request-factory 呼び出しが行われると、例外が発生します。

08-05 23:04:33.501: ERROR/AndroidRuntime(22839): java.lang.RuntimeException: No token manifest found.  Did the RequestFactory annotation processor run? Check classpath for META-INF/requestFactory/typeTokens file and ensure that your proxy types are compiled with the requestfactory-apt.jar on javac's classpath.
08-05 23:04:33.501: ERROR/AndroidRuntime(22839):     at com.google.web.bindery.requestfactory.vm.impl.TypeTokenResolver.loadFromClasspath(TypeTokenResolver.java:104)
08-05 23:04:33.501: ERROR/AndroidRuntime(22839):     at com.google.web.bindery.requestfactory.vm.InProcessRequestFactory.<init>(InProcessRequestFactory.java:82)
08-05 23:04:33.501: ERROR/AndroidRuntime(22839):     at com.google.web.bindery.requestfactory.vm.RequestFactorySource.create(RequestFactorySource.java:43)
08-05 23:04:33.501: ERROR/AndroidRuntime(22839):     at com.myproject.core.android.helper.Util.getRequestFactory(Util.java:97)
08-05 23:04:33.501: ERROR/AndroidRuntime(22839):     at com.myproject.core.android.Login$1.onClick(Login.java:54)
08-05 23:04:33.501: ERROR/AndroidRuntime(22839):     at android.view.View.performClick(View.java:2501)
08-05 23:04:33.501: ERROR/AndroidRuntime(22839):     at android.view.View$PerformClick.run(View.java:9107)
08-05 23:04:33.501: ERROR/AndroidRuntime(22839):     at android.os.Handler.handleCallback(Handler.java:587)
08-05 23:04:33.501: ERROR/AndroidRuntime(22839):     at android.os.Handler.dispatchMessage(Handler.java:92)
08-05 23:04:33.501: ERROR/AndroidRuntime(22839):     at android.os.Looper.loop(Looper.java:130)
08-05 23:04:33.501: ERROR/AndroidRuntime(22839):     at android.app.ActivityThread.main(ActivityThread.java:3835)
08-05 23:04:33.501: ERROR/AndroidRuntime(22839):     at java.lang.reflect.Method.invokeNative(Native Method)
08-05 23:04:33.501: ERROR/AndroidRuntime(22839):     at java.lang.reflect.Method.invoke(Method.java:507)
08-05 23:04:33.501: ERROR/AndroidRuntime(22839):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
08-05 23:04:33.501: ERROR/AndroidRuntime(22839):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
08-05 23:04:33.501: ERROR/AndroidRuntime(22839):     at dalvik.system.NativeStart.main(Native Method)

ビルドには Java 1.6 を使用しています。gwt のバージョンは 2.4 (rc1) です。maven-processor-plugin とインポートした requestfactory-apt を使ってみました。しかし、どういうわけか、maven プロセッサ プラグインはプロセッサを見つけられないようです。構成がどのように見えるかわかりません。

私は持っている:

    <plugin>
      <groupId>org.bsc.maven</groupId>
      <artifactId>maven-processor-plugin</artifactId>
      <version>2.0.4-SNAPSHOT</version>
       <executions>
        <execution>
           <id>process</id>
          <goals>
            <goal>process</goal>
          </goals>
          <phase>generate-sources</phase> 
          <<configuration>
            <processors>
               <processor>com.google.gwt.requestfactory-apt</processor>
            </processors> 
          </configuration>  
        </execution>
      </executions>
   </plugin>

ターゲット フォルダーに注釈用のフォルダーが作成されますが、空です。問題が何であるかを誰かが知っていますか?他にどのような情報が必要ですか?

更新: バージョンを 2.0.3-SNAPSHOT に変更しました。今私は得る:

[INFO] Source directory: E:\Eclipse\Eclipse3.7\android\target\META-INF\requestFactory added
[INFO] javac option: -cp
[INFO] javac option: C:\profiles\....
[INFO] javac option: -proc:only
[INFO] javac option: -processor
[INFO] javac option: com.google.web.bindery.requestfactory.apt.RfApt
[INFO] javac option: -d
[INFO] javac option: E:\Eclipse\Eclipse3.7\android\target\classes
[INFO] javac option: -s
[INFO] javac option: E:\Eclipse\Eclipse3.7\android\target\META-INF\requestFactory

しかし、このフォルダにはファイルがありません。追加すると:

<compilerArguments>
             -Averbose=true</compilerArguments>   
          </configuration> 

私のポンへ。エラーメッセージが表示されます:

diagnostic warning: The following options were not recognized by any processor: '[verbose]'

今、私は再び立ち往生しています:-/

4

2 に答える 2

0

これはあなたを助けるかもしれません、 RequestFactoryInterfaceValidation

RequestFactory ValidationTool を使用してみてください

于 2011-09-11T08:17:31.220 に答える
0

プロセッサ クラスの名前は ですcom.google.web.bindery.requestfactory.apt.RfAptが、明示的なセクションがなくても自動的に検出されます<configuration>

また、<<configuration>サンプルコードにありますが、コピペエラーですか?

于 2011-08-05T21:38:56.497 に答える