2012-05-25 7 views
0

나는 안드로이드 프로젝트를 가지고 있는데, 빌드하고 설치하고 명령 행으로 테스트를 실행하고 싶다. 다음AndroidMock을 사용한 앤트 로이드 테스트 프로젝트

내 빌드 쉘 스크립트입니다

android update project --path ./main/libraryProject 
android update project --path ./main/Project --library ../libraryProject 
android update project --path ./main/Test --library ../libraryProject 
android update test-project -m $(pwd)/main/Project -p ./main/Test 
cd main/Project 
ant debug install 
cd ../Test 
ant debug install test 

이 프로젝트는 건설 및 설치하지만, 테스트 프로젝트를 빌드 할 때 오류를 다음과 만날 수 있습니다

[javac] An annotation processor threw an uncaught exception. 
    [javac] Consult the following stack trace for details. 
    [javac] java.lang.NoClassDefFoundError: android/app/Activity 
    [javac]  at java.lang.ClassLoader.defineClass1(Native Method) 
    [javac]  at java.lang.ClassLoader.defineClass(ClassLoader.java:634) 
    [javac]  at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    [javac]  at java.net.URLClassLoader.defineClass(URLClassLoader.java:277) 
    [javac]  at java.net.URLClassLoader.access$000(URLClassLoader.java:73) 
    [javac]  at java.net.URLClassLoader$1.run(URLClassLoader.java:212) 
    [javac]  at java.security.AccessController.doPrivileged(Native Method) 
    [javac]  at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    [javac]  at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
    [javac]  at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
    [javac]  at java.lang.Class.forName0(Native Method) 
    [javac]  at java.lang.Class.forName(Class.java:264) 
    [javac]  at com.google.android.testing.mocking.UsesMocksProcessor.findClassesToMock(UsesMocksProcessor.java:144) 
    [javac]  at com.google.android.testing.mocking.UsesMocksProcessor.process(UsesMocksProcessor.java:108) 
    [javac]  at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:735) 
    [javac]  at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:664) 
    [javac]  at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:809) 
    [javac]  at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1060) 
    [javac]  at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:795) 
    [javac]  at com.sun.tools.javac.main.Main.compile(Main.java:380) 
    [javac]  at com.sun.tools.javac.main.Main.compile(Main.java:306) 
    [javac]  at com.sun.tools.javac.main.Main.compile(Main.java:297) 
    [javac]  at com.sun.tools.javac.Main.compile(Main.java:82) 
    [javac]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    [javac]  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    [javac]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    [javac]  at java.lang.reflect.Method.invoke(Method.java:616) 
    [javac]  at org.apache.tools.ant.taskdefs.compilers.Javac13.execute(Javac13.java:56) 
    [javac]  at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1153) 
    [javac]  at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:930) 
    [javac]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
    [javac]  at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
    [javac]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    [javac]  at java.lang.reflect.Method.invoke(Method.java:616) 
    [javac]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
    [javac]  at org.apache.tools.ant.Task.perform(Task.java:348) 
    [javac]  at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) 
    [javac]  at com.android.ant.IfElseTask.execute(IfElseTask.java:120) 
    [javac]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
    [javac]  at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
    [javac]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    [javac]  at java.lang.reflect.Method.invoke(Method.java:616) 
    [javac]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
    [javac]  at org.apache.tools.ant.Task.perform(Task.java:348) 
    [javac]  at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) 
    [javac]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
    [javac]  at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
    [javac]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    [javac]  at java.lang.reflect.Method.invoke(Method.java:616) 
    [javac]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
    [javac]  at org.apache.tools.ant.Task.perform(Task.java:348) 
    [javac]  at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398) 
    [javac]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
    [javac]  at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
    [javac]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    [javac]  at java.lang.reflect.Method.invoke(Method.java:616) 
    [javac]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
    [javac]  at org.apache.tools.ant.Task.perform(Task.java:348) 
    [javac]  at org.apache.tools.ant.Target.execute(Target.java:392) 
    [javac]  at org.apache.tools.ant.Target.performTasks(Target.java:413) 
    [javac]  at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) 
    [javac]  at org.apache.tools.ant.Project.executeTarget(Project.java:1368) 
    [javac]  at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) 
    [javac]  at org.apache.tools.ant.Project.executeTargets(Project.java:1251) 
    [javac]  at org.apache.tools.ant.Main.runBuild(Main.java:811) 
    [javac]  at org.apache.tools.ant.Main.startAnt(Main.java:217) 
    [javac]  at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) 
    [javac]  at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) 
    [javac] Caused by: java.lang.ClassNotFoundException: android.app.Activity 
    [javac]  at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
    [javac]  at java.security.AccessController.doPrivileged(Native Method) 
    [javac]  at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    [javac]  at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
    [javac]  at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
    [javac]  ... 68 more 

는 모든 몸은 내가 무엇을해야하는지 알을 ? AndroidMock을 사용하면 어떻게됩니까?

답변

0

코드를 컴파일하려면 클래스 경로에 android jar를 추가해야합니다. 이 설정하여 해당 작업을 수행 할 수 있습니다

<property name="jar.libs.dir" value="${libs.dir}" /> 

을 그리고 당신은 그것을 후 컴파일 제거 할 수 있습니다

<target name="-post-compile"> 
    <delete file="libs/android.jar"> </delete> 
</target>