Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

Forums

How to Resolve the 401 Unauthorized Error When Accessing GitHub Maven Packages

Scheduled Pinned Locked Moved General Discussion
1 Posts 1 Posters 143 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    B Offline
    benardag
    wrote on last edited by
    #1

    If you encounter the following error while developing an Android app, it might be due to authentication issues with GitHub Maven packages:

    * What went wrong:
    Execution failed for task ':app:checkDebugAarMetadata'.
    > Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
       > Could not resolve com.trustwallet:wallet-core:3.1.27.
         Required by:
             project :app > project :trust_wallet_core
          > Could not resolve com.trustwallet:wallet-core:3.1.27.
             > Could not get resource 'https://maven.pkg.github.com/trustwallet/wallet-core/com/trustwallet/wallet-core/3.1.27/wallet-core-3.1.27.pom'.
                > Could not GET 'https://maven.pkg.github.com/trustwallet/wallet-core/com/trustwallet/wallet-core/3.1.27/wallet-core-3.1.27.pom'. Received status code 401 from server: Unauthorized
    
    * Try:
    > Run with --stacktrace option to get the stack trace.
    > Run with --info or --debug option to get more log output.
    > Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    
    BUILD FAILED in 7s
    Running Gradle task 'assembleDebug'...                              7.6s
    [!] Gradle threw an error while downloading artifacts from the network.
    Error: Gradle task assembleDebug failed with exit code 1
    

    Understanding the Issue

    This error indicates that while trying to resolve dependencies from GitHub Packages, the authentication failed with a 401 Unauthorized error. GitHub Packages requires credentials even for public packages, which means you need an access token to publish, install, and delete packages regardless of their visibility.

    For more information on GitHub access tokens, refer to the Git-Hub access tokens .

    Solution: Configuring GitHub Credentials in Gradle

    To resolve this issue in your Android project using Gradle, you need to configure your GitHub credentials in the gradle.properties file. Here are the steps:

    1. Add Credentials to gradle.properties:

    Create or edit the gradle.properties file in your project’s root directory (or if you are using flutter in android part) and add your GitHub username and access token:

    properties

    gpr.user=your-github-username
    gpr.key=your-github-access-token
    
    1. Update build.gradle to Use the Credentials:

    Edit your project-level (android level) build.gradle file to include the GitHub repository and use the credentials from gradle.properties:

    groovy

    allprojects {
        repositories {
            google()
            mavenCentral()
            maven {
                url = "https://maven.pkg.github.com/trustwallet/wallet-core/com/trustwallet/wallet-core-proto/3.1.27/wallet-core-proto-3.1.27.pom"
                credentials {
                    username = project.findProperty("gpr.user") 
                    password = project.findProperty("gpr.key")
                }
            }
        }
    }
    

    NB: you can check how to configure this in other building tools

    In the above example, replace https://maven.pkg.github.com/trustwallet/wallet-core/com/trustwallet/wallet-core-proto/3.1.27/wallet-core-proto-3.1.27.pom with the appropriate URL for the package you need to access.

    Example
    Here’s a full example of how your build.gradle file might look after making these changes:

    groovy

    apply plugin: 'com.android.application'
    apply plugin: 'kotlin-android'
    apply plugin: 'kotlin-android-extensions'
    
    android {
        compileSdkVersion 30
        defaultConfig {
            applicationId "com.example.yourapp"
            minSdkVersion 21
            targetSdkVersion 30
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    repositories {
        google()
        mavenCentral()
        maven {
            url = "https://maven.pkg.github.com/trustwallet/wallet-core/com/trustwallet/wallet-core-proto/3.1.27/wallet-core-proto-3.1.27.pom"
            credentials {
                username = project.findProperty("gpr.user")
                password = project.findProperty("gpr.key")
            }
        }
    }
    
    dependencies {
        implementation 'com.android.support:appcompat-v7:28.0.0'
        implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
        implementation 'com.trustwallet:wallet-core:3.1.27@aar'
        implementation 'com.trustwallet:wallet-core-proto:3.1.27'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'androidx.test.ext:junit:1.1.2'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    }
    

    With these configurations, Gradle will use the provided credentials to authenticate and access the necessary GitHub packages.

    This should help you resolve the 401 Unauthorized error and successfully build your project using dependencies hosted on GitHub Packages.

    Note: Understanding the problem is half the solution. Since this error can occur whenever you are trying to use a GitHub package, the solution provided here can offer valuable insights to help you resolve similar issues in other projects, not just Android ones.

    1 Reply Last reply
    0

    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups