boundbox icon indicating copy to clipboard operation
boundbox copied to clipboard

BoundBox fails to generate classes

Open 4emodan opened this issue 11 years ago • 4 comments

I made a simple project to test BoundBox. I'm using Android Studio Structure is default:

src
-- instrumentTest
-- -- java
-- -- -- ItemListActivityTest
-- main
-- -- java
-- -- -- com.example.test.dummy
-- -- -- -- ItemDetailActivity
-- -- -- -- ItemDetailFragment
-- -- -- -- ItemListActivity
-- -- -- -- ItemListFragment
-- res

This is my build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}

apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.android.support:appcompat-v7:+'
    compile 'com.android.support:support-v4:18.0.0'

    instrumentTestCompile "org.boundbox:boundbox-library:1.2.0"
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.1.1"

    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 18
    }
}

Test class is simple too:

import android.test.ActivityInstrumentationTestCase2;
import org.boundbox.BoundBox;
import com.example.test.dummy.ItemListActivity;


@BoundBox(boundClass = ItemListActivity.class)
public class ItemListActivityTest extends ActivityInstrumentationTestCase2<ItemListActivity> {

    public ItemListActivityTest() {
        super(ItemListActivity.class);
    }

}

The problem is that when i add an annotation, classes are not generated automatically as it says in BoundBox' wiki. So i'm trying to run gradlew compileTest to generate classes and getting an error:

... more info log ...    
executable -><init>
field ->TAG added. Static = false
Adding to imports java.lang.String
field ->FRAGMENTS_TAG added. Static = false
Adding to imports java.lang.String
field ->HONEYCOMB added. Static = false
field ->MSG_REALLY_STOPPED added. Static = false
field ->MSG_RESUME_PENDING added. Static = false
field ->mHandler added. Static = false
Adding to imports android.os.Handler
field ->mFragments added. Static = false
Adding to imports android.support.v4.app.FragmentManagerImpl


An annotation processor threw an uncaught exception.
Consult the following stack trace for details.
java.lang.RuntimeException
        at org.boundbox.processor.VisbilityComputer.findVisibleSuperType(VisbilityComputer.java:40)
        at org.boundbox.processor.VisbilityComputer.findVisibleSuperType(VisbilityComputer.java:26)
        at org.boundbox.processor.BoundClassScanner.doCheckVisibilityOfField(BoundClassScanner.java:251)
        at org.boundbox.processor.BoundClassScanner.visitVariableAsField(BoundClassScanner.java:185)
        at org.boundbox.processor.BoundClassScanner.visitVariableAsField(BoundClassScanner.java:31)
        at javax.lang.model.util.ElementKindVisitor6.visitVariable(ElementKindVisitor6.java:199)
        at com.sun.tools.javac.code.Symbol$VarSymbol.accept(Symbol.java:901)
        at org.boundbox.processor.BoundClassScanner.visitTypeAsClass(BoundClassScanner.java:145)
        at org.boundbox.processor.BoundClassScanner.visitTypeAsClass(BoundClassScanner.java:31)
        at javax.lang.model.util.ElementKindVisitor6.visitType(ElementKindVisitor6.java:118)
        at com.sun.tools.javac.code.Symbol$ClassSymbol.accept(Symbol.java:835)
        at org.boundbox.processor.BoundClassScanner.visitTypeAsClass(BoundClassScanner.java:133)
        at org.boundbox.processor.BoundClassScanner.visitTypeAsClass(BoundClassScanner.java:31)
        at javax.lang.model.util.ElementKindVisitor6.visitType(ElementKindVisitor6.java:118)
        at com.sun.tools.javac.code.Symbol$ClassSymbol.accept(Symbol.java:835)
        at org.boundbox.processor.BoundClassScanner.scan(BoundClassScanner.java:49)
        at org.boundbox.processor.BoundBoxProcessor.process(BoundBoxProcessor.java:182)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:627)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:556)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:701)
        at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:987)
        at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:727)
        at com.sun.tools.javac.main.Main.compile(Main.java:353)
        at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:115)
        at org.gradle.api.internal.tasks.compile.jdk6.Jdk6JavaCompiler.execute(Jdk6JavaCompiler.java:45)
        at org.gradle.api.internal.tasks.compile.jdk6.Jdk6JavaCompiler.execute(Jdk6JavaCompiler.java:38)
        at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:96)
        at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:49)
        at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:35)
        at org.gradle.api.internal.tasks.compile.DelegatingJavaCompiler.execute(DelegatingJavaCompiler.java:29)
        at org.gradle.api.internal.tasks.compile.DelegatingJavaCompiler.execute(DelegatingJavaCompiler.java:20)
        at org.gradle.api.internal.tasks.compile.IncrementalJavaCompilerSupport.execute(IncrementalJavaCompilerSupport.java:33)
        at org.gradle.api.internal.tasks.compile.IncrementalJavaCompilerSupport.execute(IncrementalJavaCompilerSupport.java:24)
        at org.gradle.api.tasks.compile.Compile.compile(Compile.java:65)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.gradle.util.JavaMethod.invoke(JavaMethod.java:62)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:219)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:212)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:201)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:527)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:510)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:283)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$1.run(DefaultTaskPlanExecutor.java:33)
        at org.gradle.internal.Factories$1.create(Factories.java:22)
        at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:214)
        at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:276)
        at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:142)
        at org.gradle.api.internal.changedetection.state.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:78)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:31)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86)
        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
        at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
        at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:166)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64)
        at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
        at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
        at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50)
        at org.gradle.api.internal.Actions$RunnableActionAdapter.execute(Actions.java:171)
        at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201)
        at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174)
        at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170)
        at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139)
        at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
        at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
        at org.gradle.launcher.Main.doAction(Main.java:46)
        at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
        at org.gradle.launcher.Main.main(Main.java:37)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
        at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32)
        at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33)
        at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130)
        at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48)
:Dummy:compileTest FAILED
:Dummy:compileTest (Thread[main,5,main]) completed. Took 2.056 secs.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':Dummy:compileTest'.
> Compilation failed; see the compiler error output for details.

4emodan avatar Dec 05 '13 09:12 4emodan

Is there any progress on this?

TealOcean avatar Feb 28 '14 23:02 TealOcean

I'm using the latest Android Studio 0.8.10 with Gradle 0.12.2. I can see all the BoundOfxxx classes being generated under build/classes/test but they don't get picked up by AS.

Any ideas, @stephanenicolas?

jenzz avatar Sep 17 '14 22:09 jenzz

As forewords, I never tried BoundBox with AS. And I don't have much time to dedicate to this lib's maintenance.

Nevertheless, it looks like you are not far from getting it to work. There is no way to add the generated classes to Android Studio paths ? I am sorry but I can't really help you with that any further.

S.

2014-09-17 18:21 GMT-04:00 Jens Driller [email protected]:

I'm using the latest Android Studio 0.8.10 with Gradle 0.12.2. I can see all the BoundOfxxx classes being generated under build/classes/test but they don't get picked up by AS.

Any ideas, @stephanenicolas https://github.com/stephanenicolas?

— Reply to this email directly or view it on GitHub https://github.com/stephanenicolas/boundbox/issues/22#issuecomment-55969435 .

stephanenicolas avatar Sep 18 '14 14:09 stephanenicolas

I am having this same problem: I can see the generated .java file in /app/build/intermediates/classes/androidTest/debug/

But how do I get it into my test file?

Anyone figure this out?

madhavajay avatar Mar 27 '15 12:03 madhavajay