Could not resolve com.stripe:stripe-android:20.12.+. (Android build fails)

Hi, it’s very strange bug, as yesterday everything worked well, codebase didn’t change. Would appreciate any help :slight_smile:

EAS build output:

WARNING:Software Components will not be created automatically for Maven publishing from Android Gradle Plugin 8.0. To opt-in to the future behavior, set the Gradle property android.disableAutomaticComponentCreation=true in the `gradle.properties` file or use the new publishing DSL.
135
> Configure project :react-native-reanimated
136
AAR for react-native-reanimated has been found
137
/home/expo/workingdir/build/node_modules/react-native-reanimated/android/react-native-reanimated-70-hermes.aar
138
[stderr] FAILURE: Build failed with an exception.
139
[stderr] * What went wrong:
140
[stderr] Could not determine the dependencies of task ':app:buildReleasePreBundle'.
141
[stderr] > Could not resolve all task dependencies for configuration ':app:releaseRuntimeClasspath'.
142
[stderr]    > Could not resolve com.stripe:stripe-android:20.12.+.
143
[stderr]      Required by:
144
[stderr]          project :app > project :stripe_stripe-react-native
145
[stderr]       > Failed to list versions for com.stripe:stripe-android.
146
[stderr]          > Unable to load Maven meta-data from https://www.jitpack.io/com/stripe/stripe-android/maven-metadata.xml.
147
[stderr]             > Could not GET 'https://www.jitpack.io/com/stripe/stripe-android/maven-metadata.xml'. Received status code 521 from server: 
148
[stderr] * Try:
149
[stderr] > Run with --stacktrace option to get the stack trace.
150
[stderr] > Run with --info or --debug option to get more log output.
151
[stderr] > Run with --scan to get full insights.
152
[stderr] * Get more help at https://help.gradle.org
153
[stderr] BUILD FAILED in 2m 51s
154
Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
155
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
156
See https://docs.gradle.org/7.5.1/userguide/command_line_interface.html#sec:command_line_warnings
157
5 actionable tasks: 5 executed

Package.json deps:

"dependencies": {
    "@apollo/client": "3.4.17",
    "@expo/vector-icons": "^13.0.0",
    "@react-native-async-storage/async-storage": "~1.17.3",
    "@react-native-community/netinfo": "9.3.5",
    "@react-native-picker/picker": "2.4.8",
    "@react-navigation/native": "^6.0.2",
    "@react-navigation/native-stack": "^6.9.7",
    "@sentry/react-native": "4.9.0",
    "@shopify/flash-list": "1.3.1",
    "@stripe/stripe-react-native": "0.19.0",
    "apollo-link-logger": "2.0.0",
    "big.js": "6.1.1",
    "date-fns": "2.28.0",
    "expo": "~47.0.9",
    "expo-apple-authentication": "~5.0.1",
    "expo-application": "~5.0.1",
    "expo-asset": "~8.7.0",
    "expo-auth-session": "~3.8.0",
    "expo-blur": "~12.0.1",
    "expo-build-properties": "~0.4.1",
    "expo-clipboard": "~4.0.1",
    "expo-constants": "~14.0.2",
    "expo-crypto": "~12.0.0",
    "expo-dev-client": "~2.0.1",
    "expo-device": "~5.0.0",
    "expo-font": "~11.0.1",
    "expo-linear-gradient": "~12.0.1",
    "expo-linking": "~3.3.0",
    "expo-mail-composer": "~12.0.0",
    "expo-navigation-bar": "~2.0.1",
    "expo-random": "~13.0.0",
    "expo-secure-store": "~12.0.0",
    "expo-splash-screen": "~0.17.5",
    "expo-status-bar": "~1.4.2",
    "expo-system-ui": "~2.0.1",
    "expo-updates": "~0.15.6",
    "expo-web-browser": "~12.0.0",
    "formik": "2.2.9",
    "graphql": "15.7.2",
    "lodash": "4.17.21",
    "moti": "0.17.1",
    "native-base": "3.4.25",
    "react": "18.1.0",
    "react-dom": "18.1.0",
    "react-native": "0.70.5",
    "react-native-confirmation-code-field": "^7.3.0",
    "react-native-fast-image": "^8.5.11",
    "react-native-gesture-handler": "~2.8.0",
    "react-native-keyboard-aware-scroll-view": "0.9.5",
    "react-native-masked-text": "^1.13.0",
    "react-native-modalize": "^2.0.13",
    "react-native-pager-view": "6.0.1",
    "react-native-picker-select": "^8.0.4",
    "react-native-reanimated": "~2.12.0",
    "react-native-safe-area-context": "4.4.1",
    "react-native-screens": "~3.18.0",
    "react-native-scrollable-navigation-bar": "^3.0.5",
    "react-native-svg": "13.4.0",
    "react-native-tab-view": "^3.1.1",
    "react-native-web": "~0.18.7",
    "sentry-expo": "~6.0.0",
    "tslib": "^2.3.1",
    "zod": "3.15.1",
    "zod-formik-adapter": "1.1.1"
  },
  "devDependencies": {
    "@babel/core": "^7.19.3",
    "@react-native-community/eslint-config": "3.2.0",
    "@types/big.js": "6.1.6",
    "@types/react": "~18.0.24",
    "@types/react-native": "~0.70.6",
    "@typescript-eslint/eslint-plugin": "5.47.0",
    "env-cmd": "10.1.0",
    "eslint": "7.32.0",
    "eslint-plugin-ft-flow": "2.0.3",
    "eslint-plugin-import": "2.26.0",
    "eslint-plugin-prettier": "4.2.1",
    "eslint-plugin-react-hooks": "^4.5.0",
    "prettier": "2.8.1",
    "react-native-svg-transformer": "1.0.0",
    "typescript": "^4.6.3"
  }

Expo config:

import type { ConfigContext, ExpoConfig } from 'expo/config';

import packageJson from './package.json';

// eslint-disable-next-line import/no-anonymous-default-export, import/no-default-export
export default function ({ config }: ConfigContext): ExpoConfig {
  return {
    ...config,
    jsEngine: 'hermes',
    name: 'Wojna Warzyw',
    scheme: 'wojnawarzyw',
    version: packageJson.version,
    slug: 'ww-customer-app',
    privacy: 'hidden',
    owner: 'darthwade',
    orientation: 'portrait',
    userInterfaceStyle: 'light',
    backgroundColor: '#FFFFFF',
    primaryColor: '#FAAF00',
    androidNavigationBar: {
      barStyle: 'dark-content',
      backgroundColor: '#000000',
    },
    ios: {
      supportsTablet: false,
      usesAppleSignIn: true,
      bundleIdentifier: 'pl.wojnawarzyw.app',
      buildNumber: packageJson.iosBuildNumber,
      config: {
        usesNonExemptEncryption: false,
      },
      infoPlist: {
        // NSFaceIDUsageDescription: 'Face ID is used for authentication',
        // UIBackgroundModes: ['fetch', 'remote-notification'],
        NSCameraUsageDescription:
          'This app uses the camera to scan barcodes on delivered boxes to them to share their feedback.',
      },
    },
    android: {
      package: 'pl.wojnawarzyw.app',
      versionCode: packageJson.androidVersionCode,
      adaptiveIcon: {
        foregroundImage: './src/assets/images/adaptive-icon.png',
        backgroundColor: '#FAAF00',
      },
      permissions: ['com.google.android.gms.permission.AD_ID'],
      // permissions: ['NOTIFICATIONS'],
      // useNextNotificationsApi: true,
    },
    icon: './src/assets/images/icon.png',
    splash: {
      image: './src/assets/images/splash.png',
      resizeMode: 'contain',
      backgroundColor: '#FAAF00',
    },
    web: {
      favicon: './src/assets/images/favicon.png',
    },
    updates: {
      fallbackToCacheTimeout: 0,
    },
    assetBundlePatterns: ['**/*'],
    plugins: [
      [
        'expo-build-properties',
        {
          // https://github.com/expo/expo/blob/main/packages/expo-build-properties/build/pluginConfig.js
          android: {
            enableProguardInReleaseBuilds: true,
            minSdkVersion: 21,
            compileSdkVersion: 33,
            targetSdkVersion: 33,
            // https://developer.android.com/studio/releases/build-tools
            buildToolsVersion: '33.0.1',
            // kotlinVersion: '1.6.10', // expo default
            // kotlinVersion: '1.6.21', // stripe-android
            kotlinVersion: '1.7.20', // latest
          },
          ios: {
            deploymentTarget: '13.0',
          },
        },
      ],
      [
        '@stripe/stripe-react-native',
        {
          merchantIdentifier: process.env.STRIPE_MERCHANT_ID,
          enableGooglePay: false,
        },
      ],
      'expo-apple-authentication',
      'sentry-expo',
    ],
    packagerOpts: {
      config: 'metro.config.js',
      sourceExts: [
        'expo.ts',
        'expo.tsx',
        'expo.js',
        'expo.jsx',
        'ts',
        'tsx',
        'js',
        'jsx',
        'json',
        'wasm',
        'svg',
      ],
    },
    hooks: {
      postPublish: [
        process.env.SENTRY_AUTH_TOKEN
          ? {
              file: 'sentry-expo/upload-sourcemaps',
              config: {
                setCommits: true,
                organization: process.env.SENTRY_ORG,
                project: process.env.SENTRY_PROJECT,
                authToken: process.env.SENTRY_AUTH_TOKEN,
              },
            }
          : undefined,
      ].filter(Boolean),
    },
    extra: {
      eas: {
        projectId: 'fdf61dca-c2ef-4d53-9a3d-ac4d44a10c88',
      },

      DEBUG: process.env.DEBUG,
      API_BASE_URL: process.env.API_BASE_URL,
      WEB_BASE_URL: process.env.WEB_BASE_URL,
      FB_APP_ID: process.env.FB_APP_ID,
      WEB_GOOGLE_CLIENT_ID: process.env.WEB_GOOGLE_CLIENT_ID,
      IOS_GOOGLE_CLIENT_ID: process.env.IOS_GOOGLE_CLIENT_ID,
      ANDROID_GOOGLE_CLIENT_ID: process.env.ANDROID_GOOGLE_CLIENT_ID,
      KLAVIYO_PUBLIC_API_KEY: process.env.KLAVIYO_PUBLIC_API_KEY,
      STRIPE_PUBLISHABLE_KEY: process.env.STRIPE_PUBLISHABLE_KEY,
      STRIPE_MERCHANT_ID: process.env.STRIPE_MERCHANT_ID,
      SENTRY_DSN: process.env.SENTRY_DSN,
    },
  };
}

Hi @darthwade

jitpack.io seems to be having problems:

Got it, thank you @wodin

Might be worth contacting Stripe about this.

@darthwade looks like it’s working again:

1 Like