Skip to content
Setting up the Latest Web3j Library for Android Development
Shashank Kumar

Published On - July 24, 2024

Setting up the Latest Web3j Library for Android Development

Web3j is a lightweight, highly modular, reactive, and type-safe Java and Android library designed to work with Smart Contracts and integrate with clients (nodes) on the Ethereum network. This powerful library enables developers to interact with the Ethereum blockchain without the additional overhead of writing custom integration code. In this article, we’ll walk through the steps to set up Web3j for Android development using the latest version.

Prerequisites

Before getting started, ensure you have the following:

  • Android Studio installed.
  • A basic understanding of Android development and Gradle.
  • JDK Version 17

Step 1: Add Web3j Dependency

Using Maven:

Add the following dependency to your pom.xml file:


 <dependency>
 <groupId>org.web3j</groupId>
 <artifactId>core</artifactId>
 <version>4.12.0</version>
</dependency>

Using Gradle (Kotlin):

Add the Web3j dependency to your build.gradle.kts file :


dependencies { implementation("org.web3j:core:4.12.0") }

Step 2: Update Packaging Options

To avoid conflicts with certain files included in the Web3j library, you need to exclude specific resources. Add the following code snippet to your module’s build.gradle.kts file within the Android block:


android { packagingOptions { resources { excludes += "/META-INF/DISCLAIMER" } } }

Step 3: Sync Gradle

After adding the dependencies and updating the packaging options, sync your Gradle files to ensure all changes are applied. This can be done by clicking the “Sync Now” prompt that appears in the top-right corner of Android Studio, or by selecting “File > Sync Project with Gradle Files”.

Step 4: Verify the Setup

To verify that Web3j has been integrated successfully, you can create a simple test to connect to the Ethereum network.

  1. Create a new Kotlin file in your project, e.g., Web3jTest.kt.
  2. Add the following code to connect to a public Ethereum node and print the latest block number:

import org.web3j.protocol.Web3j
import org.web3j.protocol.http.HttpService
import kotlinx.coroutines.runBlocking

fun main() = runBlocking {
   val web3 = Web3j.build(HttpService("https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID"))
   val latestBlockNumber = web3.ethBlockNumber().send().blockNumber
   println("Latest Ethereum block number: $latestBlockNumber")
}

Replace YOUR_INFURA_PROJECT_ID with your actual Infura project ID.

By following these steps, you have successfully integrated Web3j into your Android project. You can now start developing applications that interact with the Ethereum blockchain, leveraging the powerful features of Web3j without the complexity of writing custom integration code.

 

For more details about Web3j, you can check the official documentation.

 

The Chainlens Blockchain Explorer provides all of the business metrics you need to support your blockchain and smart contract applications.
We provide SLA-backed production support for Ethereum networks running Quorum and Hyperledger Besu.
Traditional financial markets infrastructure is being redefined by blockchain and DLT technology. We can ensure you’re prepared.
With dedicated support from the creators of Web3j you can ensure you have a trusted partner to support your most critical blockchain applications.
Ethereum, Web3j, Android