的Andr​​oid / RoboGuice / Maven的:ClassNotFoundException的Eclipse中,而不是从Maven的命令行 [英] Android/RoboGuice/Maven: ClassNotFoundException in Eclipse, but not from Maven command line

查看:230
本文介绍了的Andr​​oid / RoboGuice / Maven的:ClassNotFoundException的Eclipse中,而不是从Maven的命令行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个处理吉斯绑定的类。这是一个需要运行的第一件事,叫ApplicationAutoworkout.java。

 包com.redsoft.android.autoworkout;进口的java.util.List;进口roboguice.application.RoboApplication;进口com.google.inject.Module;
进口com.redsoft.android.autoworkout.service._ModuleQueryFor;
进口com.redsoft.android.autoworkout.service._ModuleService;
进口com.redsoft.android.autoworkout.ui._ModuleUi;公共类ApplicationAutoworkout扩展RoboApplication {
     私人模块testModule;@覆盖
保护无效addApplicationModules(列表<&模块GT;模块){
    modules.add(新_ModuleUi(this.getApplicationContext()));
    modules.add(新_ModuleService(this.getApplicationContext()));
    modules.add(新_ModuleQueryFor());    如果(testModule!= NULL)modules.add(testModule);    super.addApplicationModules(模块);
}
    //允许在测试期间所加入的testModule
    公共无效setModule(模块模块){
        this.testModule =模块;
    }}

本类,无论出于何种原因,无法通过时,它是建立在Android模拟器中找到/从Eclipse中部署

  3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):致命异常:主要
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):了java.lang.RuntimeException:无法实例化应用com.redsoft.android.autoworkout.ApplicationAutoworkout:抛出java.lang.ClassNotFoundException:com.redsoft.android.autoworkout。 ApplicationAutoworkout装载机dalvik.system.PathClassLoader [/data/app/com.redsoft.android.autoworkout-2.apk]
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在android.app.ActivityThread $ PackageInfo.makeApplication(ActivityThread.java:649)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在android.app.ActivityThread.handleBindApplication(ActivityThread.java:4232)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在android.app.ActivityThread.access $ 3000(ActivityThread.java:125)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2071)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在android.os.Handler.dispatchMessage(Handler.java:99)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在android.os.Looper.loop(Looper.java:123)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在android.app.ActivityThread.main(ActivityThread.java:4627)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在java.lang.reflect.Method.invokeNative(本机方法)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在java.lang.reflect.Method.invoke(Method.java:521)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在dalvik.system.NativeStart.main(本机方法)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):抛出java.lang.ClassNotFoundException:致com.redsoft.android.autoworkout.ApplicationAutoworkout装载机dalvik.system.PathClassLoader [/data/app/com.redsoft .android.autoworkout-2.apk]
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在java.lang.ClassLoader.loadClass(ClassLoader.java:573)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在java.lang.ClassLoader.loadClass(ClassLoader.java:532)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在android.app.Instrumentation.newApplication(Instrumentation.java:942)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):在android.app.ActivityThread $ PackageInfo.makeApplication(ActivityThread.java:644)
3月9日至5日:43:42.745:ERROR / AndroidRuntime(843):11 ...更多

不过,如果我在命令行中运行以下命令:

  MVN清洁工艺类机器人:机器人DEX:APK安卓部署

一切正常。这是怎么回事在Eclipse中,保持Android的从发现的类?

编辑:这里是AndroidManifest.xml中

 <?XML版本=1.0编码=UTF-8&GT?;
<表明包=com.redsoft.android.autoworkout安卓版code =0安卓=的versionName0.0.1-SNAPSHOT的xmlns:机器人=htt​​p://schemas.android.com / APK / RES / Android的>
    <采用-SDK机器人:targetSdkVersion =7安卓的minSdkVersion =7>< /使用-SDK>  <应用机器人:图标=@绘制/图标机器人:标签=@字符串/ APP_NAME机器人:可调试=真正的机器人:名字=ApplicationAutoworkout>
    <活动机器人:标签=@字符串/ APP_NAME机器人:名字=。ui.ActivityMain>
      &所述;意图滤光器>
        <作用机器人:名字=android.intent.action.MAIN/>
        <类机器人:名字=android.intent.category.LAUNCHER/>
      &所述; /意图滤光器>
    < /活性GT;
    <活动机器人:名字=。ui.profile.ActivityProfile>< /活性GT;
    <活动机器人:名字=。ui.routine.ActivityRoutine>< /活性GT;    <活动机器人:名字=。ui.train.ActivityTrain>< /活性GT;<活动机器人:名字=。ui.exercise.ActivityExercise>< /活性GT;
    <活动机器人:名字=。ui.exercise.ActivityViewExercise>< /活性GT;<活动机器人:名字=。ui.exercise.ActivityAddEditExercise>< /活性GT;
    <活动机器人:名字=。ui.profile.ActivityAddProfile>< /活性GT;
    <活动机器人:名字=。ui.profile.ActivityEditProfile>< /活性GT;
    <活动机器人:名字=。ui.routine.ActivityRoutineView>< /活性GT;
    <活动机器人:名字=。ui.routine.ActivityRoutineEdit>< /活性GT;
    <活动机器人:名字=。ui.routine.ActivityRoutineAdd>< /活性GT;
    <活动机器人:名字=。ui.routine.ActivityRoutineAddExercise>< /活性GT;  < /用途>< /清单>

此外,POM:

 <?XML版本=1.0编码=UTF-8&GT?;
<项目的xmlns =htt​​p://maven.apache.org/POM/4.0.0的xmlns:XSI =htt​​p://www.w3.org/2001/XMLSchema-instance
  XSI:的schemaLocation =htt​​p://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd\">
  < modelVersion> 4.0.0< / modelVersion>  &所述亲本GT;
    <&的groupId GT; com.seventheye.android< /的groupId>
    <&的artifactId GT; autoworkout亲和LT; / artifactId的>
    <&版GT; 0.0.1-SNAPSHOT< /版本>
  < /母体GT;
  <&的artifactId GT; autoworkout应用< / artifactId的>
  <包装和GT;&APK LT; /包装>
  <名称> autoworkout - 应用与LT; /名称>
<依赖和GT;
 <&依赖性GT;
      <&的groupId GT; com.google.inject< /的groupId>
      <&的artifactId GT;吉斯 - no_aop< / artifactId的>
    < /依赖性>
    <&依赖性GT;
      <&的groupId GT; com.google.inject< /的groupId>
      <&的artifactId GT;吉斯辅助-注射< / artifactId的>
    < /依赖性>
    <&依赖性GT;
      <&的groupId GT; org.roboguice< /的groupId>
      <&的artifactId GT; roboguice< / artifactId的>
  < /依赖性>
  <&依赖性GT;
    <&的groupId GT; com.j256.ormlite< /的groupId>
    <&的artifactId GT; ormlite芯< / artifactId的>
  < /依赖性>
  <&依赖性GT;
    <&的groupId GT; com.j256.ormlite< /的groupId>
    <&的artifactId GT; ormlite-Android和LT; / artifactId的>
  < /依赖性>
     <&依赖性GT;
        <&的groupId GT; com.pivotallabs< /的groupId>
        <&的artifactId GT; robolectric< / artifactId的>
        <&范围GT;试验< /&范围GT;
    < /依赖性>
    <&依赖性GT;
      <&的groupId GT; com.seventheye.android< /的groupId>
      <&的artifactId GT; robolectric-sqlite的< / artifactId的>
      <&版GT; 1.0-RC5-SNAPSHOT< /版本>
      <&范围GT;试验< /&范围GT;
    < /依赖性>
< /依赖和GT;  <型材>
  <型材>
      <&ID GT;&proguard的LT; / ID>
      <建立>
              <&插件GT;
              <&插件GT;
                <&的groupId GT; com.pyx4me< /的groupId>
                <&的artifactId GT;的ProGuard-Maven的插件< / artifactId的>
                <&版GT; 2.0.4< /版本>
                <&执行GT;
                    <执行与GT;
                        <阶段>工艺类< /阶段>
                        <目标>
                            <&目标GT;&proguard的LT; /目标>
                        < /目标>
                    < /执行>
                < /处决>
                <结构>
                    < proguardVersion> 4.6 LT; / proguardVersion>
                    < maxMemory>512米< / maxMemory>
                    < injar>机器人类< / injar>
                    <库>
                      <&LIB GT; $ {rt.jar.path}< / lib目录>
                      <&LIB GT; $ {jsse.jar.path}< / lib目录>
                    < /库>
                    <&混淆GT假LT; /混淆>
                     < addMavenDescriptor>假LT; / addMavenDescriptor>
                     &LT; proguardInclude&GT; $ {} project.basedir /proguard.conf</proguardInclude>
                  &LT; /结构&gt;
                &LT;依赖和GT;
              &LT;&依赖性GT;
                &LT;&的groupId GT; net.sf.proguard&LT; /的groupId&GT;
                &LT;&的artifactId GT;&proguard的LT; / artifactId的&GT;
                &LT;&版GT; 4.6 LT; /版本&GT;
                &LT;&范围GT;运行时&LT; /&范围GT;
              &LT; /依赖性&GT;
            &LT; /依赖和GT;
            &LT; /插件&GT;
            &LT; /插件&GT;
      &LT; /构建&GT;
      &LT; / profile文件&GT;
    &LT;型材&GT;
      &LT;&ID GT;释放和LT; / ID&GT;
      &LT;建立&GT;
        &LT;&插件GT;
              &LT;&插件GT;
                &LT;&的groupId GT; com.pyx4me&LT; /的groupId&GT;
                &LT;&的artifactId GT;的ProGuard-Maven的插件&LT; / artifactId的&GT;
                &LT;&版GT; 2.0.4&LT; /版本&GT;
                &LT;&执行GT;
                    &LT;执行与GT;
                        &LT;阶段&gt;工艺类&LT; /阶段&gt;
                        &LT;目标&GT;
                            &LT;&目标GT;&proguard的LT; /目标&GT;
                        &LT; /目标&GT;
                    &LT; /执行&GT;
                &LT; /处决&GT;
                &LT;结构&gt;
                    &LT; proguardVersion&GT; 4.6 LT; / proguardVersion&GT;
                    &LT; maxMemory&GT;512米&LT; / maxMemory&GT;
                    &LT; injar&GT;机器人类&LT; / injar&GT;
                    &LT;! - &LT; injar&GT;的Scala库&LT; / injar&GT; - &GT;
                    &LT;库&GT;
                      &LT;&LIB GT; $ {rt.jar.path}&LT; / lib目录&GT;
                      &LT;&LIB GT; $ {jsse.jar.path}&LT; / lib目录&GT;
                    &LT; /库&GT;
                    &LT;&混淆GT假LT; /混淆&GT;
                     &LT; addMavenDescriptor&GT;假LT; / addMavenDescriptor&GT;
                     &LT; proguardInclude&GT; $ {} project.basedir /proguard.conf</proguardInclude>
                  &LT; /结构&gt;
                &LT;依赖和GT;
              &LT;&依赖性GT;
                &LT;&的groupId GT; net.sf.proguard&LT; /的groupId&GT;
                &LT;&的artifactId GT;&proguard的LT; / artifactId的&GT;
                &LT;&版GT; 4.6 LT; /版本&GT;
                &LT;&范围GT;运行时&LT; /&范围GT;
              &LT; /依赖性&GT;
            &LT; /依赖和GT;
            &LT; /插件&GT;
          &LT;&插件GT;
            &LT;&的artifactId GT;的maven-的jarsigner,插件和LT; / artifactId的&GT;
            &LT;&执行GT;
              &LT;执行与GT;
                &LT;&ID GT;签应用APK&LT; / ID&GT;
                &LT;阶段&gt;包装及LT; /阶段&gt;
                &LT;目标&GT;
                  &LT;&目标gt;登录&LT; /目标&GT;
                  &LT;&目标GT;&验证LT; /目标&GT;
                &LT; /目标&GT;
              &LT; /执行&GT;
            &LT; /处决&GT;
          &LT; /插件&GT;
          &LT;&插件GT;
            &LT;&的groupId GT; com.jayway.maven.plugins.android.generation2&LT; /的groupId&GT;
            &LT;&的artifactId GT;的maven-Android平台的插件和LT; / artifactId的&GT;
             &LT;&执行GT;
        &LT;执行与GT;
            &LT;&ID GT; startemulator&LT; / ID&GT;
            &LT;阶段&gt;&初始化LT; /阶段&gt;
            &LT;目标&GT;
            &LT;&目标GT;模拟器启动&LT; /目标&GT;
            &LT; /目标&GT;
        &LT; /执行&GT;
              &LT;执行与GT;
                &LT;&ID GT;的zipalign应用,APK&LT; / ID&GT;
                &LT;阶段&gt;包装及LT; /阶段&gt;
                &LT;目标&GT;
                  &LT;&目标GT;的zipalign&LT; /目标&GT;
                &LT; /目标&GT;
              &LT; /执行&GT;
            &LT; /处决&GT;
            &LT;结构&gt;
              &LT;&的zipalign GT;
                &LT(详细);真&LT; /详细&GT;
                <inputApk>${project.build.directory}/${project.artifactId}-${project.version}.apk</inputApk>
                <outputApk>${project.build.directory}/${project.artifactId}-${project.version}-signed-aligned.apk</outputApk>
              &LT; /&的zipalign GT;
              &LT;广告及GT;
                &LT;调试和GT假LT; /调试&GT;
              &LT; /标志&GT;
              &LT;&模拟器GT;
            &LT;&AVD GT;的Andr​​oid2.2&LT; / AVD&GT;
            &LT;等待&GT; 10000&LT; /等待&GT;
            &LT;选项&gt; -no-皮肤LT; /选项&gt;
              &LT; /仿真器&GT;
            &LT; /结构&gt;
          &LT; /插件&GT;
          &LT;&插件GT;
            &LT;的groupId方式&gt;组织codehaus.mojo&LT; /的groupId&GT;
            &LT;&的artifactId GT;建立辅助-Maven的插件&LT; / artifactId的&GT;
            &LT;结构&gt;
              &LT;工件和GT;
                &LT;&神器GT;
                  &LT;文件&gt; $ {} project.build.directory /proguard_map.txt</file>
                  &LT;&型GT;地图和LT; /类型&GT;
                  &LT;分类器GT;释放和LT; /分类&GT;
                &LT; /神器&GT;
              &LT; /工件和GT;
            &LT; /结构&gt;
            &LT;&执行GT;
              &LT;执行与GT;
                &LT;&ID GT;附加签名对齐&LT; / ID&GT;
                &LT;阶段&gt;包装及LT; /阶段&gt;
                &LT;目标&GT;
                  &LT;&目标GT;附加神器&LT; /目标&GT;
                &LT; /目标&GT;
              &LT; /执行&GT;
            &LT; /处决&GT;
          &LT; /插件&GT;
         &LT;&插件GT;
                &LT;&的artifactId GT;的maven-清理插件&LT; / artifactId的&GT;
                &LT;&版GT; 2.4.1&LT; /版本&GT;
                &LT;结构&gt;
                    &LT;&文件集GT;
                        &LT;&文件集GT;
                            &LT;&目录GT; TMP&LT; /目录&GT;
                            &所述包括(includes)GT;
                                &LT;&包括GT; * LT; / - 包括GT;
                            &LT; / - 包括GT;
                        &LT; /文件集&GT;
                    &LT; /文件集&GT;
                &LT; /结构&gt;
            &LT; /插件&GT;
            &LT;&插件GT;
    &LT;&的groupId GT; org.apache.maven.plugins&LT; /的groupId&GT;
    &LT;&的artifactId GT; Maven的Eclipse的插件&LT; / artifactId的&GT;
    &LT;&版GT; 2.8 LT; /版本&GT;
    &LT;! - 看到http://maven.apache.org/plugins/maven-eclipse-plugin/eclipse-mojo.html了解更多信息 - &GT;
    &LT;结构&gt;
      &LT; downloadSources&GT;真&LT; / downloadSources&GT;
      &LT; downloadJavadocs&GT;真&LT; / downloadJavadocs&GT;
      &LT; projectnatures&GT;
        &LT; projectnature&GT; org.scala-ide.sdt.core.scalanature&LT; / projectnature&GT;
        &LT; projectnature&GT; org.eclipse.jdt.core.javanature&LT; / projectnature&GT;
      &LT; / projectnatures&GT;
      &LT; buildcommands&GT;
        &LT; buildcommand&GT; org.scala-ide.sdt.core.scalabuilder&LT; / buildcommand&GT;
      &LT; / buildcommands&GT;
      &LT; classpathContainers&GT;
        &LT; classpathContainer&GT; org.scala-ide.sdt.launching.SCALA_CONTAINER&LT; / classpathContainer&GT;
        &LT; classpathContainer&GT; org.eclipse.jdt.launching.JRE_CONTAINER&LT; / classpathContainer&GT;
      &LT; / classpathContainers&GT;
      &LT;&排除GT;
        &LT;&排除GT; org.scala郎:斯卡拉库&LT; /排除&GT;
        &LT;&排除GT; org.scala郎:斯卡拉编译器&LT; /排除&GT;
      &LT; /排除&GT;
      &LT; sourceIncludes&GT;
        &LT; sourceInclude&GT; ** / *阶&LT; / sourceInclude&GT;
        &LT; sourceInclude&GT; ** / *的Java&LT; / sourceInclude&GT;
      &LT; / sourceIncludes&GT;
    &LT; /结构&gt;
  &LT; /插件&GT;
        &LT; /插件&GT;
      &LT; /构建&GT;
    &LT; / profile文件&GT;
  &LT; /型材&GT;&LT; /项目&GT;


解决方案

的问题是,Android的开发工具包的Eclipse插件不支持Maven依赖。如果你想使用它,你需要使用的M2E M2E-的Andr​​oid的Andr​​oid配置扩展:

http://rgladwell.github.com/m2e-android

I have a class that handles Guice bindings. It is the very first thing that needs to run, called ApplicationAutoworkout.java.

package com.redsoft.android.autoworkout;

import java.util.List;

import roboguice.application.RoboApplication;

import com.google.inject.Module;
import com.redsoft.android.autoworkout.service._ModuleQueryFor;
import com.redsoft.android.autoworkout.service._ModuleService;
import com.redsoft.android.autoworkout.ui._ModuleUi;

public class ApplicationAutoworkout extends RoboApplication {
     private Module testModule;

@Override
protected void addApplicationModules(List<Module> modules) {
    modules.add(new _ModuleUi(this.getApplicationContext()));
    modules.add(new _ModuleService(this.getApplicationContext()));
    modules.add(new _ModuleQueryFor());

    if (testModule!=null)modules.add(testModule);

    super.addApplicationModules(modules);
}
    //Allows the testModule to be added during tests
    public void setModule(Module module) {
        this.testModule = module;
    }

}

This class, for whatever reason, cannot be found by the Android emulator when it is built/deployed from eclipse

09-05 03:43:42.745: ERROR/AndroidRuntime(843): FATAL EXCEPTION: main
09-05 03:43:42.745: ERROR/AndroidRuntime(843): java.lang.RuntimeException: Unable to instantiate application com.redsoft.android.autoworkout.ApplicationAutoworkout: java.lang.ClassNotFoundException: com.redsoft.android.autoworkout.ApplicationAutoworkout in loader dalvik.system.PathClassLoader[/data/app/com.redsoft.android.autoworkout-2.apk]
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at android.app.ActivityThread$PackageInfo.makeApplication(ActivityThread.java:649)
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4232)
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at android.app.ActivityThread.access$3000(ActivityThread.java:125)
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071)
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at android.os.Looper.loop(Looper.java:123)
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at android.app.ActivityThread.main(ActivityThread.java:4627)
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at java.lang.reflect.Method.invokeNative(Native Method)
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at java.lang.reflect.Method.invoke(Method.java:521)
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at dalvik.system.NativeStart.main(Native Method)
09-05 03:43:42.745: ERROR/AndroidRuntime(843): Caused by: java.lang.ClassNotFoundException: com.redsoft.android.autoworkout.ApplicationAutoworkout in loader dalvik.system.PathClassLoader[/data/app/com.redsoft.android.autoworkout-2.apk]
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at android.app.Instrumentation.newApplication(Instrumentation.java:942)
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     at android.app.ActivityThread$PackageInfo.makeApplication(ActivityThread.java:644)
09-05 03:43:42.745: ERROR/AndroidRuntime(843):     ... 11 more

However, if I run this from the command line:

mvn clean process-classes android:dex android:apk android:deploy

everything works. What's going on in Eclipse that keeps Android from finding the class?

EDIT: Here's the AndroidManifest.xml.

<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.redsoft.android.autoworkout" android:versionCode="0" android:versionName="0.0.1-SNAPSHOT" xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-sdk android:targetSdkVersion="7" android:minSdkVersion="7"></uses-sdk>

  <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true" android:name="ApplicationAutoworkout">
    <activity android:label="@string/app_name" android:name=".ui.ActivityMain">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    <activity android:name=".ui.profile.ActivityProfile"></activity>
    <activity android:name=".ui.routine.ActivityRoutine"></activity>

    <activity android:name=".ui.train.ActivityTrain"></activity><activity android:name=".ui.exercise.ActivityExercise"></activity>
    <activity android:name=".ui.exercise.ActivityViewExercise"></activity><activity android:name=".ui.exercise.ActivityAddEditExercise"></activity>
    <activity android:name=".ui.profile.ActivityAddProfile"></activity>
    <activity android:name=".ui.profile.ActivityEditProfile"></activity>
    <activity android:name=".ui.routine.ActivityRoutineView"></activity>
    <activity android:name=".ui.routine.ActivityRoutineEdit"></activity>
    <activity android:name=".ui.routine.ActivityRoutineAdd"></activity>
    <activity android:name=".ui.routine.ActivityRoutineAddExercise"></activity>

  </application>

</manifest>

Also, the POM:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>com.seventheye.android</groupId>
    <artifactId>autoworkout-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>autoworkout-app</artifactId>
  <packaging>apk</packaging>
  <name>autoworkout - Application</name>
<dependencies>
 <dependency>
      <groupId>com.google.inject</groupId>
      <artifactId>guice-no_aop</artifactId>
    </dependency>
    <dependency>
      <groupId>com.google.inject</groupId>
      <artifactId>guice-assisted-inject</artifactId>
    </dependency>
    <dependency>
      <groupId>org.roboguice</groupId>
      <artifactId>roboguice</artifactId>
  </dependency>
  <dependency>
    <groupId>com.j256.ormlite</groupId>
    <artifactId>ormlite-core</artifactId>
  </dependency>
  <dependency>
    <groupId>com.j256.ormlite</groupId>
    <artifactId>ormlite-android</artifactId>
  </dependency>
     <dependency>
        <groupId>com.pivotallabs</groupId>
        <artifactId>robolectric</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.seventheye.android</groupId>
      <artifactId>robolectric-sqlite</artifactId>
      <version>1.0-RC5-SNAPSHOT</version>
      <scope>test</scope>
    </dependency>
</dependencies>

  <profiles>
  <profile>
      <id>proguard</id>
      <build>
              <plugins>
              <plugin>
                <groupId>com.pyx4me</groupId>
                <artifactId>proguard-maven-plugin</artifactId>
                <version>2.0.4</version>
                <executions>
                    <execution>
                        <phase>process-classes</phase>
                        <goals>
                            <goal>proguard</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <proguardVersion>4.6</proguardVersion>
                    <maxMemory>512m</maxMemory>
                    <injar>android-classes</injar>
                    <libs>
                      <lib>${rt.jar.path}</lib>
                      <lib>${jsse.jar.path}</lib>
                    </libs>
                    <obfuscate>false</obfuscate>
                     <addMavenDescriptor>false</addMavenDescriptor>
                     <proguardInclude>${project.basedir}/proguard.conf</proguardInclude>
                  </configuration>
                <dependencies>
              <dependency>
                <groupId>net.sf.proguard</groupId>
                <artifactId>proguard</artifactId>
                <version>4.6</version>
                <scope>runtime</scope>
              </dependency>
            </dependencies>
            </plugin>
            </plugins>
      </build>
      </profile>
    <profile>
      <id>release</id>
      <build>
        <plugins>
              <plugin>
                <groupId>com.pyx4me</groupId>
                <artifactId>proguard-maven-plugin</artifactId>
                <version>2.0.4</version>
                <executions>
                    <execution>
                        <phase>process-classes</phase>
                        <goals>
                            <goal>proguard</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <proguardVersion>4.6</proguardVersion>
                    <maxMemory>512m</maxMemory>
                    <injar>android-classes</injar>
                    <!-- <injar>scala-library</injar>-->
                    <libs>
                      <lib>${rt.jar.path}</lib>
                      <lib>${jsse.jar.path}</lib>
                    </libs>
                    <obfuscate>false</obfuscate>
                     <addMavenDescriptor>false</addMavenDescriptor>
                     <proguardInclude>${project.basedir}/proguard.conf</proguardInclude>
                  </configuration>
                <dependencies>
              <dependency>
                <groupId>net.sf.proguard</groupId>
                <artifactId>proguard</artifactId>
                <version>4.6</version>
                <scope>runtime</scope>
              </dependency>
            </dependencies>
            </plugin>
          <plugin>
            <artifactId>maven-jarsigner-plugin</artifactId>
            <executions>
              <execution>
                <id>sign-application-apk</id>
                <phase>package</phase>
                <goals>
                  <goal>sign</goal>
                  <goal>verify</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>com.jayway.maven.plugins.android.generation2</groupId>
            <artifactId>maven-android-plugin</artifactId>
             <executions>
        <execution>
            <id>startemulator</id>
            <phase>initialize</phase>
            <goals>
            <goal>emulator-start</goal>
            </goals>
        </execution>
              <execution>
                <id>zipalign-application-apk</id>
                <phase>package</phase>
                <goals>
                  <goal>zipalign</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <zipalign>
                <verbose>true</verbose>
                <inputApk>${project.build.directory}/${project.artifactId}-${project.version}.apk</inputApk>
                <outputApk>${project.build.directory}/${project.artifactId}-${project.version}-signed-aligned.apk</outputApk>
              </zipalign>
              <sign>
                <debug>false</debug>
              </sign>
              <emulator>
            <avd>Android2.2</avd>
            <wait>10000</wait>
            <options>-no-skin</options>
              </emulator>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <configuration>
              <artifacts>
                <artifact>
                  <file>${project.build.directory}/proguard_map.txt</file>
                  <type>map</type>
                  <classifier>release</classifier>
                </artifact>
              </artifacts>
            </configuration>
            <executions>
              <execution>
                <id>attach-signed-aligned</id>
                <phase>package</phase>
                <goals>
                  <goal>attach-artifact</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
         <plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <filesets>
                        <fileset>
                            <directory>tmp</directory>
                            <includes>
                                <include>*</include>
                            </includes>
                        </fileset>
                    </filesets>
                </configuration>
            </plugin>
            <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-eclipse-plugin</artifactId>
    <version>2.8</version>
    <!-- see http://maven.apache.org/plugins/maven-eclipse-plugin/eclipse-mojo.html for more information -->
    <configuration>
      <downloadSources>true</downloadSources>
      <downloadJavadocs>true</downloadJavadocs>
      <projectnatures>
        <projectnature>org.scala-ide.sdt.core.scalanature</projectnature>
        <projectnature>org.eclipse.jdt.core.javanature</projectnature>
      </projectnatures>
      <buildcommands>
        <buildcommand>org.scala-ide.sdt.core.scalabuilder</buildcommand>
      </buildcommands>
      <classpathContainers>
        <classpathContainer>org.scala-ide.sdt.launching.SCALA_CONTAINER</classpathContainer>
        <classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer>
      </classpathContainers>
      <excludes>
        <exclude>org.scala-lang:scala-library</exclude>
        <exclude>org.scala-lang:scala-compiler</exclude>
      </excludes>
      <sourceIncludes>
        <sourceInclude>**/*.scala</sourceInclude>
        <sourceInclude>**/*.java</sourceInclude>
      </sourceIncludes>
    </configuration>
  </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

</project>

解决方案

The problem is that the Android Development Toolkit Eclipse plugin does not support Maven dependencies. If you want to use it you need to use the m2e-android Android Configurator extension for M2E:

http://rgladwell.github.com/m2e-android

这篇关于的Andr​​oid / RoboGuice / Maven的:ClassNotFoundException的Eclipse中,而不是从Maven的命令行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆