记一次java.lang.NoClassDefFoundError: okio/Options 的问题

当遇到BoClassDefFoundError: okio/Options的时候,首先想到的是jar包冲突了。

项目中引入的maven如下:

        <!-- 引入 bitcoinj-core-->
        <dependency>
            <groupId>org.bitcoinj</groupId>
            <artifactId>bitcoinj-core</artifactId>
            <version>0.14.7</version>
        </dependency>

        <!-- 引入web3j -->
        <dependency>
            <groupId>org.web3j</groupId>
            <artifactId>core</artifactId>
            <version>4.5.18</version>
        </dependency>

引入顺序,先引入web3j,再引入bitcoinj-core ,在引入比特币包后,就出现以上错误。

解决方法:

在引入的bitcoinj-core中忽略okhttp的依赖:

        <!-- 引入 bitcoinj-core-->
        <dependency>
            <groupId>org.bitcoinj</groupId>
            <artifactId>bitcoinj-core</artifactId>
            <version>0.14.7</version>
            <exclusions>
                <exclusion>
                    <artifactId>okhttp</artifactId>
                    <groupId>com.squareup.okhttp</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- 引入web3j -->
        <dependency>
            <groupId>org.web3j</groupId>
            <artifactId>core</artifactId>
            <version>4.5.18</version>
        </dependency>

问题解决,可以正常运行。