현인

[Android Studio & Kotlin] Android Studio에서 MetaMask 연동하기 - WalletConnect 설치 본문

기술 학습

[Android Studio & Kotlin] Android Studio에서 MetaMask 연동하기 - WalletConnect 설치

현인(Hyeon In) 2023. 3. 10. 17:17

안드로이드 스튜디오에서 MetaMask를 실행하기 위해서는 WalletConnect 라이브러리를 사용해야 한다. WallectConnect라이브러리 공식문서를 참고하여 개발하였다. 

https://docs.walletconnect.com/2.0/

 

About | WalletConnect Docs

What is WalletConnect?

docs.walletconnect.com

안드로이드 스튜디오 버전 : 2022.1.1.21

 

공식문서 내용

코틀린 스크립트 기반 gradle 파일을 예제로 설명하고 있어서 코틀린 스크립트로 gradle을 설정하지 않았을 경우

root/build.gradle.kts 에 설정하는 부분을 setting.gradle 파일에 넣어주면 된다.

 

setting.gradle

...
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven { url "https://jitpack.io" }
    }
}
...

 

app/build.gradle.kts 파일은 build.gradle(Module :app) 파일에 넣어주면 되고, 코틀린 스크립트와 Gradle의 구조가 달라서 문법을 수정해서 적용해야 한다.

 

build.gradle(Module.app)

...
dependencies {

    implementation 'androidx.core:core-ktx:1.7.0'
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'com.google.android.material:material:1.8.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
    
    implementation "com.walletconnect:android-core:1.11.1"
    implementation "com.walletconnect:web3wallet:1.4.1"
}

처음에 괄호만 제거하고 그냥 복붙했다가 라이브러리를 찾을 수 없다는 에러가 떴다.

release_version 부분을 공식문서에서 언급하고 있는 버전으로 바꿔서 넣어주자

 

위 내용을 적용하고 실행 시켰더니 아래와 같은 에러가 발생하였다.

dataExtractionRules가 중복 정의 되었다고 한다. 

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/Theme.Test"
        tools:targetApi="31"
        tools:replace="android:dataExtractionRules">

에러에서 tools:replace를 추가하라고 해서 추가해줬더니 해결되었다.

반응형