以太坊技術交流學習

想了解更多區塊鏈技術知識,請百度【鏈客區塊鏈技術問答社區】

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

環境: mac & android studio
1、 導入包
在app/build.gradle中:compile 'org.web3j:core:3.0.1-android'
即:
dependencies {android

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一下。
2、啓動私有鏈
搭建:here
啓動:geth --rpcapi personal,db,eth,net,web3 --rpc --rinkeby console 2>>geth.logweb

//這裏備註一下個人啓動方式
geth --identity "linoy" --rpc --rpccorsdomain "*" --datadir "./" --port "30303" --nodiscover --rpcapi "personal,db,eth,net,web3,miner" --networkid 1999 console 2>>geth.logjson

查看:tail -f geth.log
3、初步嘗試
Web3j web3 = Web3jFactory.build(new HttpService());
Web3ClientVersion web3ClientVersion = web3.web3ClientVersion().sendAsync().get();
String clientVersion = web3ClientVersion.getWeb3ClientVersion();
可能出現錯誤:
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.api

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...

解決方案:app

運行成功,在調用的時候可能出現的錯誤:cors

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));dom

相關文章
相關標籤/搜索