由于 InvocationTargetException 错误,合约编译失败

Contract compilation failed because of an InvocationTargetException error

我正在尝试使用 Maven 创建与 Aion 的 Java 合约,但每次我尝试 运行 mvn clean install 时,我都会收到以下错误:

[ERROR] Failed to execute goal org.aion4j:aion4j-maven-plugin:0.6.7:postpack (default) on project LearningAion: Contract Jar post compilation failed: InvocationTargetException: NullPointerException -> [Help 1]

我使用 Maven 构建命令重新创建了一个项目:mvn archetype:generate -DarchetypeGroupId=org.aion4j -DarchetypeArtifactId=avm-archetype -DarchetypeVersion=0.20 并且该项目工作正常。

这是我的合约代码:

package AnimalHouse;

import avm.Blockchain;
import org.aion.avm.tooling.abi.Callable;

public class MyPets
{
    private static String myDogsName = "Alan.";

    @Callable
    public static String getString() {
        return myString;
    }

    @Callable
    public static void setString(String newStr) {
        myString = newStr;
    }
}

根据 Aion Docs 一切都应该编译。我不确定为什么这份合同不起作用,但当我创建一个全新的合同时它就起作用了。

查看 <contract.main.class> 项目的 pom.xml 文件。仔细检查这两个标签之间的内容是您的主要名称 Java class 和包名称。如果您认为应该是 AnimalHouse.MyPets.

<properties>
    ...
    <contract.main.class>AnimalHouse.MyPets</contract.main.class>
    ...
</properties>