区块链以太坊 web3j for java 配置和使用 <1;

Posted 宣之于口

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链以太坊 web3j for java 配置和使用 <1;相关的知识,希望对你有一定的参考价值。

以太坊 web3j for java 配置和使用 <1>


官网:here

环境: mac & android studio

一、 导入包

在app/build.gradle中:compile 'org.web3j:core:3.0.1-android'

即:

dependencies 
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', 
        exclude group: 'com.android.support', module: 'support-annotations'
    )
    compile 'org.web3j:core:3.0.1-android'
    compile 'com.android.support:appcompat-v7:26.+'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
    compile files('libs/android-json-rpc-0.3.4.jar')

然后sync一下。

二、启动私有链

搭建:here

启动:geth --rpcapi personal,db,eth,net,web3 --rpc --rinkeby console 2>>geth.log

//这里备注一下我的启动方式
geth --identity "linoy" --rpc --rpccorsdomain "*" --datadir "./" --port "30303" --nodiscover --rpcapi "personal,db,eth,net,web3,miner" --networkid 1999 console 2>>geth.log

查看:tail -f geth.log

三、初步尝试

Web3j web3 = Web3jFactory.build(new HttpService());
Web3ClientVersion web3ClientVersion = web3.web3ClientVersion().sendAsync().get();
String clientVersion = web3ClientVersion.getWeb3ClientVersion();

可能出现错误:

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE
    File1: /Users/pro/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.8.0/45b426f7796b741035581a176744d91090e2e6fb/jackson-annotations-2.8.0.jar
...

解决方案:

运行成功,在调用的时候可能出现的错误:

    Failed to connect to localhost/127.0.0.1:8548

原因:模拟器默认把127.0.0.1和localhost当做本身了,在模拟器上可以用10.0.2.2代替127.0.0.1和localhost

解决办法:设置访问的ip为10.0.2.2

String url = "http://10.0.2.2:8545";
Web3j web3 = Web3jFactory.build(new HttpService(url));

查看结果:

以上是关于区块链以太坊 web3j for java 配置和使用 <1;的主要内容,如果未能解决你的问题,请参考以下文章

区块链以太坊 web3j for java 使用 - 为用户创建凭证credentials <2;

区块链以太坊(Ethereum )高级进阶实战视频教程

以太坊/BSC 区块链交易数据

创建自己的区块链合约java版web3接口——以太坊代币

SpringBoot区块链之以太坊区块高度扫描(简洁版)

使用 web3 和 go-ethereum 在私有以太坊区块链上打开和进行交易时未捕获(承诺)错误