Ant Compiler Error With Helper Blocks

Codes
package xyz.moonlight.helloworld;

import com.google.appinventor.components.common.OptionList;

public enum MyOption implements OptionList<Integer> {
    OptionA(false),
    OptionB(true);

    private final boolean value;

    MyOption(boolean value) {
        this.value = value;
    }

    public boolean toBoolean() {
        return value;
    }

    @Override
    public Integer toUnderlyingValue() {
        return 1;
    }

    // implement the standard methods for Helper blocks here
}
package xyz.moonlight.helloworld;

import android.util.Log;
import com.google.appinventor.components.annotations.*;
import com.google.appinventor.components.runtime.*;
import com.google.appinventor.components.common.*;

@DesignerComponent(version = 1,
        description = "Simple Maths extension created by you",
        category = ComponentCategory.EXTENSION,
        nonVisible = true,
        iconName = "images/extension.png")
@SimpleObject(external = true)
public class HelloWorld extends AndroidNonvisibleComponent {

    private Integer value;

    public HelloWorld(ComponentContainer container) {
        super(container.$form());
    }
    @SimpleProperty
    public void MyProperty(MyOption input) {
        this.value = input.toUnderlyingValue();
    }

}

I'm trying to create a simple helper blocks, but it fails. I'm doing it for the first time, so i dont have an idea about it.

   [javac] warning: [options] bootstrap class path not set in conjunction with -source 1.7
    [javac] 
    [javac] 
    [javac] An annotation processor threw an uncaught exception.
    [javac] Consult the following stack trace for details.
    [javac] java.lang.IllegalArgumentException: OptionList Class: xyz.moonlight.helloworld.MyOption is not available. Make sure that it is available to the compiler.
    [javac]     at com.google.appinventor.components.scripts.ComponentProcessor.tryAddOptionList(ComponentProcessor.java:2061)
    [javac]     at com.google.appinventor.components.scripts.ComponentProcessor.optionListToHelperKey(ComponentProcessor.java:2036)
    [javac]     at com.google.appinventor.components.scripts.ComponentProcessor.hasOptionListHelper(ComponentProcessor.java:1984)
    [javac]     at com.google.appinventor.components.scripts.ComponentProcessor.elementToHelperKey(ComponentProcessor.java:1961)
    [javac]     at com.google.appinventor.components.scripts.ComponentProcessor.executableElementToProperty(ComponentProcessor.java:1933)
    [javac]     at com.google.appinventor.components.scripts.ComponentProcessor.processProperties(ComponentProcessor.java:2507)
    [javac]     at com.google.appinventor.components.scripts.ComponentProcessor.processComponent(ComponentProcessor.java:1844)
    [javac]     at com.google.appinventor.components.scripts.ComponentProcessor.process(ComponentProcessor.java:1530)
    [javac]     at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:802)

package xyz.moonlight.helloworld;

import com.google.appinventor.components.common.OptionList;

public enum MyOption implements OptionList<Boolean> {
    OptionA(false),
    OptionB(true);

    private final boolean value;

    MyOption(boolean value) {
        this.value = value;
    }

    public boolean toBoolean() {
        return value;
    }

    @Override
    public Boolean toUnderlyingValue() {
        return value;
    }

    // implement the standard methods for Helper blocks here
}
1 Like

Thanks for the correction!
But it dosent solve the error.

avac] 
    [javac] An annotation processor threw an uncaught exception.
    [javac] Consult the following stack trace for details.
    [javac] java.lang.IllegalArgumentException: OptionList Class: xyz.moonlight.helloworld.MyOption is not available. Make sure that it is available to the compiler.
    [javac]     at com.google.appinventor.components.scripts.ComponentProcessor.tryAddOptionList(ComponentProcessor.java:2061)
    [javac]     at com.google.appinventor.components.scripts.ComponentProcessor.optionListToHelperKey(ComponentProcessor.java:2036)
    [javac]     at com.google.appinventor.components.scripts.ComponentProcessor.hasOptionListHelper(ComponentProcessor.java:2003)
    [javac]     at com.google.appinventor.components.scripts.ComponentProcessor.elementToHelperKey(ComponentProcessor.java:1961)
    [javac]     at com.google.appinventor.components.scripts.ComponentProcessor.executableElementToProperty(ComponentProcessor.java:1933)
    [javac]     at com.google.appinventor.components.scripts.ComponentProcessor.processProperties(ComponentProcessor.java:2507)

Put helper classes in your project directory

image

Hmm. Is that right?

it should looks like this:

|
|
|--helloworld.java
|--helpers
|----options.java

1 Like

Thanks! Works perfectly Now.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.