Setting up the Latest Web3j Library for Android Development

Shashank kumar
Web3 Labs
Published in
2 min readJul 24, 2024

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.

--

--