0

Maven for Androidを使用して Android アプリケーションのビルドを自動化しようとしています。アプリには標準の Maven フォルダー形式があり、 src はsrc/main/javaの下にあり、テストはsrc/test/javaの下にあります。紛らわしいことに、コマンドを実行するとmvn install、アプリがコンパイルされ、テストが実行され、ビルドが成功したと報告されます。

ただし、コマンドを使用してエミュレーターにアプリケーションをデプロイして実行すると、アプリケーションは起動しmvn android:deploy android:runますが、Dagger で DI に使用されるオブジェクト グラフを作成するとすぐにクラッシュします。例外は次のように述べています。

06-30 17:31:08.626: E/AndroidRuntime(518): FATAL EXCEPTION: main
06-30 17:31:08.626: E/AndroidRuntime(518): java.lang.RuntimeException: Unable to create application com.oceanlife.MainApplication: java.lang.TypeNotPresentException: Type com.oceanlife.activity.AboutActivity not present
06-30 17:31:08.626: E/AndroidRuntime(518):  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4247)
06-30 17:31:08.626: E/AndroidRuntime(518):  at android.app.ActivityThread.access$3000(ActivityThread.java:125)
06-30 17:31:08.626: E/AndroidRuntime(518):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071)
06-30 17:31:08.626: E/AndroidRuntime(518):  at android.os.Handler.dispatchMessage(Handler.java:99)
06-30 17:31:08.626: E/AndroidRuntime(518):  at android.os.Looper.loop(Looper.java:123)
06-30 17:31:08.626: E/AndroidRuntime(518):  at android.app.ActivityThread.main(ActivityThread.java:4627)
06-30 17:31:08.626: E/AndroidRuntime(518):  at java.lang.reflect.Method.invokeNative(Native Method)
06-30 17:31:08.626: E/AndroidRuntime(518):  at java.lang.reflect.Method.invoke(Method.java:521)
06-30 17:31:08.626: E/AndroidRuntime(518):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-30 17:31:08.626: E/AndroidRuntime(518):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-30 17:31:08.626: E/AndroidRuntime(518):  at dalvik.system.NativeStart.main(Native Method)
06-30 17:31:08.626: E/AndroidRuntime(518): Caused by: java.lang.TypeNotPresentException: Type com.oceanlife.activity.AboutActivity not present
06-30 17:31:08.626: E/AndroidRuntime(518):  at java.lang.Class.getDeclaredAnnotations(Native Method)
06-30 17:31:08.626: E/AndroidRuntime(518):  at java.lang.Class.getAnnotations(Class.java:322)
06-30 17:31:08.626: E/AndroidRuntime(518):  at java.lang.Class.getAnnotation(Class.java:292)
06-30 17:31:08.626: E/AndroidRuntime(518):  at dagger.internal.plugins.reflect.ReflectivePlugin.getModuleAdapter(ReflectivePlugin.java:51)
06-30 17:31:08.626: E/AndroidRuntime(518):  at dagger.internal.RuntimeAggregatingPlugin.getModuleAdapter(RuntimeAggregatingPlugin.java:98)
06-30 17:31:08.626: E/AndroidRuntime(518):  at dagger.internal.RuntimeAggregatingPlugin.getAllModuleAdapters(RuntimeAggregatingPlugin.java:55)
06-30 17:31:08.626: E/AndroidRuntime(518):  at dagger.ObjectGraph.makeGraph(ObjectGraph.java:115)
06-30 17:31:08.626: E/AndroidRuntime(518):  at dagger.ObjectGraph.create(ObjectGraph.java:103)
06-30 17:31:08.626: E/AndroidRuntime(518):  at com.oceanlife.MainApplication.onCreate(MainApplication.java:36)
06-30 17:31:08.626: E/AndroidRuntime(518):  at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
06-30 17:31:08.626: E/AndroidRuntime(518):  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4244)
06-30 17:31:08.626: E/AndroidRuntime(518):

Maven 対 Eclipse 対 Dagger に関する以前の質問に続いて、さまざまなビルド システムがコンパイルされたクラスを配置する場所と格闘するため、 ClassNotFound型の例外が発生することを期待するようになりました。しかし、私はこれに完全に困惑しています。

それが役立つ場合、私のPOMはここにあります...

よろしくお願いします。

4

1 に答える 1