的Android / RoboGuice / Maven的:ClassNotFoundException的Eclipse中,而不是从Maven的命令行 [英] Android/RoboGuice/Maven: ClassNotFoundException in Eclipse, but not from Maven command line
问题描述
我有一个处理吉斯绑定的类。这是一个需要运行的第一件事,叫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:机器人=http://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 =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> &所述亲本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;的Android2.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-的Android的Android配置扩展:
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
这篇关于的Android / RoboGuice / Maven的:ClassNotFoundException的Eclipse中,而不是从Maven的命令行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!