Google Play Billing Library Version Deprecation

Please provide the following:

  1. SDK Version: 41
  2. Platforms(Android/iOS/web/all): android
  3. expo-in-app-purchases version “10.2.0”

After uploading a release bundle we get this warning in Google Play. As the deadline is approaching, do we need to look for a new way to do IAP or will this be addressed?

https://github.com/expo/expo/pull/13884

1 Like

expo-in-app-purchases@11.0.0 is published with the update :+1:

Hi, is there any resource that can guide me through the upgrade? When I changed version in my packages.json file, I started to get tons of compile errors. Here’s an example:

BillingManager.java:37: error: package expo.modules.core does not exist
import expo.modules.core.Promise;
BillingManager.java:38: error: package expo.modules.core.interfaces.services does not exist
import expo.modules.core.interfaces.services.EventEmitter;

I’m using gradle 6.8.3 and expo 42.0.0. with React Native 0.63.4.
Would be nice to provide something for less advanced users.
Thanks!

An error is shown when using the package.

Some dependencies are incompatible with the installed expo package version:
 - @react-native-community/masked-view - expected version: 0.1.10 - actual version installed: 0.1.11
 - expo-in-app-purchases - expected version: ~10.2.0 - actual version installed: 11.0.0
Your project may not work correctly until you install the correct versions of the packages.
To install the correct versions of these packages, please run: expo install [package-name ...]

Errors whilst building:

> Task :expo-in-app-purchases:compileReleaseJavaWithJavac FAILED
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/UpdateListener.java:12: error: package expo.modules.core.interfaces.services does not exist
import expo.modules.core.interfaces.services.EventEmitter;
                                            ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/UpdateListener.java:13: error: package expo.modules.core does not exist
import expo.modules.core.Promise;
                        ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/BillingManager.java:37: error: package expo.modules.core does not exist
import expo.modules.core.Promise;
                        ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/BillingManager.java:38: error: package expo.modules.core.interfaces.services does not exist
import expo.modules.core.interfaces.services.EventEmitter;
                                            ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/UpdateListener.java:20: error: cannot find symbol
  private EventEmitter mEventEmitter;
          ^
  symbol:   class EventEmitter
  location: class UpdateListener
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/UpdateListener.java:22: error: cannot find symbol
  public UpdateListener(EventEmitter eventEmitter) {
                        ^
  symbol:   class EventEmitter
  location: class UpdateListener
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/BillingManager.java:57: error: cannot find symbol
  protected static final HashMap<String, Promise> promises = new HashMap<>();
                                         ^
  symbol:   class Promise
  location: class BillingManager
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/BillingManager.java:61: error: cannot find symbol
  private EventEmitter mEventEmitter;
          ^
  symbol:   class EventEmitter
  location: class BillingManager
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/BillingManager.java:87: error: cannot find symbol
  public BillingManager(Activity activity, EventEmitter eventEmitter) {
                                           ^
  symbol:   class EventEmitter
  location: class BillingManager
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/BillingManager.java:99: error: cannot find symbol
  public void startConnection(final Promise promise) {
                                    ^
  symbol:   class Promise
  location: class BillingManager
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/BillingManager.java:137: error: cannot find symbol
  public void purchaseItemAsync(final String skuId, @Nullable final String oldPurchaseToken, final Promise promise) {
                                                                                                   ^
  symbol:   class Promise
  location: class BillingManager
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/BillingManager.java:181: error: cannot find symbol
  public void acknowledgePurchaseAsync(String purchaseToken, final Promise promise) {
                                                                   ^
  symbol:   class Promise
  location: class BillingManager
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/BillingManager.java:198: error: cannot find symbol
  public void consumeAsync(final String purchaseToken, final Promise promise) {
                                                             ^
  symbol:   class Promise
  location: class BillingManager
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/BillingManager.java:264: error: cannot find symbol
  public void queryPurchases(final Promise promise) {
                                   ^
  symbol:   class Promise
  location: class BillingManager
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/BillingManager.java:322: error: cannot find symbol
  public void queryPurchaseHistoryAsync(final Promise promise) {
                                              ^
  symbol:   class Promise
  location: class BillingManager
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/BillingManager.java:477: error: cannot find symbol
  private void onQueryPurchasesFinished(@NonNull BillingResult billingResult, List<Purchase> purchasesList, final Promise promise) {
                                                                                                                  ^
  symbol:   class Promise
  location: class BillingManager
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/BillingManager.java:531: error: cannot find symbol
  public void queryPurchasableItems(List<String> itemList, final Promise promise) {
                                                                 ^
  symbol:   class Promise
  location: class BillingManager
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesPackage.java:8: error: package expo.modules.core does not exist
import expo.modules.core.BasePackage;
                        ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesPackage.java:9: error: package expo.modules.core does not exist
import expo.modules.core.ExportedModule;
                        ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesPackage.java:11: error: cannot find symbol
public class InAppPurchasesPackage extends BasePackage {
                                           ^
  symbol: class BasePackage
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesPackage.java:13: error: cannot find symbol
  public List<ExportedModule> createExportedModules(Context context) {
              ^
  symbol:   class ExportedModule
  location: class InAppPurchasesPackage
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:8: error: package expo.modules.core does not exist
import expo.modules.core.ExportedModule;
                        ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:9: error: package expo.modules.core does not exist
import expo.modules.core.ModuleRegistry;
                        ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:10: error: package expo.modules.core does not exist
import expo.modules.core.Promise;
                        ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:11: error: package expo.modules.core.arguments does not exist
import expo.modules.core.arguments.ReadableArguments;
                                  ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:12: error: package expo.modules.core.interfaces does not exist
import expo.modules.core.interfaces.ExpoMethod;
                                   ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:13: error: package expo.modules.core.interfaces does not exist
import expo.modules.core.interfaces.ActivityProvider;
                                   ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:14: error: package expo.modules.core.interfaces does not exist
import expo.modules.core.interfaces.RegistryLifecycleListener;
                                   ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:15: error: package expo.modules.core.interfaces.services does not exist
import expo.modules.core.interfaces.services.EventEmitter;
                                            ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:17: error: cannot find symbol
public class InAppPurchasesModule extends ExportedModule implements RegistryLifecycleListener {
                                          ^
  symbol: class ExportedModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:17: error: cannot find symbol
public class InAppPurchasesModule extends ExportedModule implements RegistryLifecycleListener {
                                                                    ^
  symbol: class RegistryLifecycleListener
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:23: error: cannot find symbol
  private ModuleRegistry mModuleRegistry;
          ^
  symbol:   class ModuleRegistry
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:24: error: cannot find symbol
  private EventEmitter mEventEmitter;
          ^
  symbol:   class EventEmitter
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:36: error: cannot find symbol
  public void onCreate(ModuleRegistry moduleRegistry) {
                       ^
  symbol:   class ModuleRegistry
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:41: error: cannot find symbol
  public void connectAsync(final Promise promise) {
                                 ^
  symbol:   class Promise
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:52: error: cannot find symbol
  public void getProductsAsync(List<String> itemList, final Promise promise) {
                                                            ^
  symbol:   class Promise
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:57: error: cannot find symbol
  public void getPurchaseHistoryAsync(final ReadableArguments options, final Promise promise) {
                                            ^
  symbol:   class ReadableArguments
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:57: error: cannot find symbol
  public void getPurchaseHistoryAsync(final ReadableArguments options, final Promise promise) {
                                                                             ^
  symbol:   class Promise
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:66: error: cannot find symbol
  public void purchaseItemAsync(String skuId, String oldSku, final Promise promise) {
                                                                   ^
  symbol:   class Promise
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:71: error: cannot find symbol
  public void getBillingResponseCodeAsync(final Promise promise) {
                                                ^
  symbol:   class Promise
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:76: error: cannot find symbol
  public void finishTransactionAsync(String purchaseToken, Boolean consume, final Promise promise) {
                                                                                  ^
  symbol:   class Promise
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:85: error: cannot find symbol
  public void disconnectAsync(final Promise promise) {
                                    ^
  symbol:   class Promise
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:40: error: cannot find symbol
  @ExpoMethod
   ^
  symbol:   class ExpoMethod
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:51: error: cannot find symbol
  @ExpoMethod
   ^
  symbol:   class ExpoMethod
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:56: error: cannot find symbol
  @ExpoMethod
   ^
  symbol:   class ExpoMethod
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:65: error: cannot find symbol
  @ExpoMethod
   ^
  symbol:   class ExpoMethod
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:70: error: cannot find symbol
  @ExpoMethod
   ^
  symbol:   class ExpoMethod
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:75: error: cannot find symbol
  @ExpoMethod
   ^
  symbol:   class ExpoMethod
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:84: error: cannot find symbol
  @ExpoMethod
   ^
  symbol:   class ExpoMethod
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/UpdateListener.java:36: error: cannot find symbol
    Promise promise = BillingManager.promises.get(BillingManager.ACKNOWLEDGING_PURCHASE);
    ^
  symbol:   class Promise
  location: class UpdateListener
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesPackage.java:12: error: method does not override or implement a method from a supertype
  @Override
  ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesPackage.java:14: error: cannot find symbol
    return Collections.singletonList((ExportedModule) new InAppPurchasesModule(context));
                                      ^
  symbol:   class ExportedModule
  location: class InAppPurchasesPackage
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:30: error: method does not override or implement a method from a supertype
  @Override
  ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:35: error: method does not override or implement a method from a supertype
  @Override
  ^
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:46: error: cannot find symbol
    mEventEmitter = mModuleRegistry.getModule(EventEmitter.class);
                                              ^
  symbol:   class EventEmitter
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:94: error: cannot find symbol
    ActivityProvider activityProvider = mModuleRegistry.getModule(ActivityProvider.class);
    ^
  symbol:   class ActivityProvider
  location: class InAppPurchasesModule
/home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/InAppPurchasesModule.java:94: error: cannot find symbol
    ActivityProvider activityProvider = mModuleRegistry.getModule(ActivityProvider.class);
                                                                  ^
  symbol:   class ActivityProvider
  location: class InAppPurchasesModule
Note: /home/augustinas/Production/sentisight-app/node_modules/expo-in-app-purchases/android/src/main/java/expo/modules/inapppurchases/BillingManager.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
57 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':expo-in-app-purchases:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* 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

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.8/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 58s
333 actionable tasks: 333 executed

I have the same problems. There is problem with missing expo.modules.core package. That problably spawns the rest of the errors.

@charliecruzan can you please provide solution for this asap? This blocks me from publishing application.

You’ll need to install expo-modules-core

Hi, thanks for quick reply. That was my initial thought, so I did install it. It didn’t change a thing.
Here are my dependencies from packages.json file:

"dependencies": {
    "@aws-amplify/core": "^3.8.11",
    "@aws-amplify/ui-react": "^0.2.35",
    "@eva-design/eva": "^2.0.0",
    "@expo-google-fonts/inter": "^0.1.0",
    "@expo-google-fonts/montserrat": "^0.1.0",
    "@material-ui/core": "^4.11.2",
    "@material-ui/icons": "^4.11.2",
    "@react-native-community/masked-view": "0.1.10",
    "@react-native-community/netinfo": "6.0.0",
    "@react-native-picker/picker": "1.9.11",
    "@react-navigation/bottom-tabs": "^5.11.3",
    "@react-navigation/drawer": "^5.11.5",
    "@react-navigation/native": "^5.9.4",
    "@react-navigation/stack": "^5.14.2",
    "@reduxjs/toolkit": "^1.5.0",
    "@ui-kitten/components": "^5.0.0",
    "@ui-kitten/eva-icons": "^5.0.0",
    "@ui-kitten/moment": "^5.0.0",
    "amazon-cognito-identity-js": "^4.5.9",
    "aws-amplify": "^3.3.16",
    "aws-amplify-react-native": "^4.3.1",
    "date-fns": "^2.21.1",
    "expo": "^42.0.0",
    "expo-app-loading": "^1.0.1",
    "expo-av": "~9.1.2",
    "expo-blur": "~9.0.3",
    "expo-font": "~9.1.0",
    "expo-image-picker": "~10.1.4",
    "expo-in-app-purchases": "^11.0.0",
    "expo-linear-gradient": "~9.1.0",
    "expo-modules-core": "^0.2.0",
    "expo-secure-store": "~10.1.0",
    "expo-sharing": "~9.1.2",
    "expo-splash-screen": "~0.10.2",
    "expo-status-bar": "~1.0.4",
    "expo-updates": "~0.5.4",
    "iap-receipt-validator": "^1.0.6",
    "moment": "^2.29.1",
    "moment-timezone": "^0.5.32",
    "random-string": "^0.2.0",
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-moment": "^1.1.1",
    "react-native": "~0.63.4",
    "react-native-action-button": "^2.8.5",
    "react-native-calendars": "^1.1259.0",
    "react-native-event-listeners": "^1.0.7",
    "react-native-gesture-handler": "~1.10.2",
    "react-native-in-app-utils": "^6.1.0",
    "react-native-ionicons": "^4.6.5",
    "react-native-keyboard-aware-scroll-view": "^0.9.4",
    "react-native-pager-view": "^6.0.0-rc.0",
    "react-native-progress": "^4.1.2",
    "react-native-reanimated": "~2.1.0",
    "react-native-responsive-linechart": "^5.7.1",
    "react-native-safe-area-context": "3.2.0",
    "react-native-screens": "~3.0.0",
    "react-native-svg": "12.1.0",
    "react-native-unimodules": "~0.13.3",
    "react-native-uuid": "^2.0.1",
    "react-native-web": "^0.16.3",
    "react-native-wheel-scrollview-picker": "^1.0.1",
    "react-redux": "^7.2.2",
    "redux": "^4.0.5",
    "rn-tooltip": "^3.0.1",
    "styled-components": "^5.2.1",
    "victory-native": "^35.3.3"
  },

  "devDependencies": {
    "@babel/core": "~7.9.0"
  }

Here’s error log:

C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\BillingManager.java:37: error: package expo.modules.core does not exist
import expo.modules.core.Promise;
                        ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\BillingManager.java:38: error: package expo.modules.core.interfaces.services does not exist
import expo.modules.core.interfaces.services.EventEmitter;
                                            ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\BillingManager.java:57: error: cannot find symbol
  protected static final HashMap<String, Promise> promises = new HashMap<>();
                                         ^
  symbol:   class Promise
  location: class BillingManager
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\BillingManager.java:61: error: cannot find symbol
  private EventEmitter mEventEmitter;
          ^
  symbol:   class EventEmitter
  location: class BillingManager
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\BillingManager.java:87: error: cannot find symbol
  public BillingManager(Activity activity, EventEmitter eventEmitter) {
                                           ^
  symbol:   class EventEmitter
  location: class BillingManager
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\BillingManager.java:99: error: cannot find symbol
  public void startConnection(final Promise promise) {
                                    ^
  symbol:   class Promise
  location: class BillingManager
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\BillingManager.java:137: error: cannot find symbol
  public void purchaseItemAsync(final String skuId, @Nullable final String oldPurchaseToken, final Promise promise) {
                                                                                                   ^
  symbol:   class Promise
  location: class BillingManager
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\BillingManager.java:181: error: cannot find symbol
  public void acknowledgePurchaseAsync(String purchaseToken, final Promise promise) {
                                                                   ^
  symbol:   class Promise
  location: class BillingManager
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\BillingManager.java:198: error: cannot find symbol
  public void consumeAsync(final String purchaseToken, final Promise promise) {
                                                             ^
  symbol:   class Promise
  location: class BillingManager
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\BillingManager.java:264: error: cannot find symbol
  public void queryPurchases(final Promise promise) {
                                   ^
  symbol:   class Promise
  location: class BillingManager
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\BillingManager.java:322: error: cannot find symbol
  public void queryPurchaseHistoryAsync(final Promise promise) {
                                              ^
  symbol:   class Promise
  location: class BillingManager
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\BillingManager.java:477: error: cannot find symbol
  private void onQueryPurchasesFinished(@NonNull BillingResult billingResult, List<Purchase> purchasesList, final Promise promise) {
                                                                                                                  ^
  symbol:   class Promise
  location: class BillingManager
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\BillingManager.java:531: error: cannot find symbol
  public void queryPurchasableItems(List<String> itemList, final Promise promise) {
                                                                 ^
  symbol:   class Promise
  location: class BillingManager
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:8: error: package expo.modules.core does not exist
import expo.modules.core.ExportedModule;
                        ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:9: error: package expo.modules.core does not exist
import expo.modules.core.ModuleRegistry;
                        ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:10: error: package expo.modules.core does not exist
import expo.modules.core.Promise;
                        ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:11: error: package expo.modules.core.arguments does not exist
import expo.modules.core.arguments.ReadableArguments;
                                  ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:12: error: package expo.modules.core.interfaces does not exist
import expo.modules.core.interfaces.ExpoMethod;
                                   ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:13: error: package expo.modules.core.interfaces does not exist
import expo.modules.core.interfaces.ActivityProvider;
                                   ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:14: error: package expo.modules.core.interfaces does not exist
import expo.modules.core.interfaces.RegistryLifecycleListener;
                                   ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:15: error: package expo.modules.core.interfaces.services does not exist
import expo.modules.core.interfaces.services.EventEmitter;
                                            ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:17: error: cannot find symbol
public class InAppPurchasesModule extends ExportedModule implements RegistryLifecycleListener {
                                          ^
  symbol: class ExportedModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:17: error: cannot find symbol
public class InAppPurchasesModule extends ExportedModule implements RegistryLifecycleListener {
                                                                    ^
  symbol: class RegistryLifecycleListener
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:23: error: cannot find symbol
  private ModuleRegistry mModuleRegistry;
          ^
  symbol:   class ModuleRegistry
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:24: error: cannot find symbol
  private EventEmitter mEventEmitter;
          ^
  symbol:   class EventEmitter
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:36: error: cannot find symbol
  public void onCreate(ModuleRegistry moduleRegistry) {
                       ^
  symbol:   class ModuleRegistry
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:41: error: cannot find symbol
  public void connectAsync(final Promise promise) {
                                 ^
  symbol:   class Promise
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:52: error: cannot find symbol
  public void getProductsAsync(List<String> itemList, final Promise promise) {
                                                            ^
  symbol:   class Promise
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:57: error: cannot find symbol
  public void getPurchaseHistoryAsync(final ReadableArguments options, final Promise promise) {
                                            ^
  symbol:   class ReadableArguments
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:57: error: cannot find symbol
  public void getPurchaseHistoryAsync(final ReadableArguments options, final Promise promise) {
                                                                             ^
  symbol:   class Promise
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:66: error: cannot find symbol
  public void purchaseItemAsync(String skuId, String oldSku, final Promise promise) {
                                                                   ^
  symbol:   class Promise
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:71: error: cannot find symbol
  public void getBillingResponseCodeAsync(final Promise promise) {
                                                ^
  symbol:   class Promise
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:76: error: cannot find symbol
  public void finishTransactionAsync(String purchaseToken, Boolean consume, final Promise promise) {
                                                                                  ^
  symbol:   class Promise
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:85: error: cannot find symbol
  public void disconnectAsync(final Promise promise) {
                                    ^
  symbol:   class Promise
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesPackage.java:8: error: package expo.modules.core does not exist
import expo.modules.core.BasePackage;
                        ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesPackage.java:9: error: package expo.modules.core does not exist
import expo.modules.core.ExportedModule;
                        ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesPackage.java:11: error: cannot find symbol        
public class InAppPurchasesPackage extends BasePackage {
                                           ^
  symbol: class BasePackage
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesPackage.java:13: error: cannot find symbol        
  public List<ExportedModule> createExportedModules(Context context) {
              ^
  symbol:   class ExportedModule
  location: class InAppPurchasesPackage
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\UpdateListener.java:12: error: package expo.modules.core.interfaces.services does not exist
import expo.modules.core.interfaces.services.EventEmitter;
                                            ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\UpdateListener.java:13: error: package expo.modules.core does not exist
import expo.modules.core.Promise;
                        ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\UpdateListener.java:20: error: cannot find symbol
  private EventEmitter mEventEmitter;
          ^
  symbol:   class EventEmitter
  location: class UpdateListener
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\UpdateListener.java:22: error: cannot find symbol
  public UpdateListener(EventEmitter eventEmitter) {
                        ^
  symbol:   class EventEmitter
  location: class UpdateListener
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:40: error: cannot find symbol
  @ExpoMethod
   ^
  symbol:   class ExpoMethod
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:51: error: cannot find symbol
  @ExpoMethod
   ^
  symbol:   class ExpoMethod
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:56: error: cannot find symbol
  @ExpoMethod
   ^
  symbol:   class ExpoMethod
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:65: error: cannot find symbol
  @ExpoMethod
   ^
  symbol:   class ExpoMethod
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:70: error: cannot find symbol
  @ExpoMethod
   ^
  symbol:   class ExpoMethod
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:75: error: cannot find symbol
  @ExpoMethod
   ^
  symbol:   class ExpoMethod
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:84: error: cannot find symbol
  @ExpoMethod
   ^
  symbol:   class ExpoMethod
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:30: error: method does not override or implement a method from a supertype
  @Override
  ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:35: error: method does not override or implement a method from a supertype
  @Override
  ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:46: error: cannot find symbol
    mEventEmitter = mModuleRegistry.getModule(EventEmitter.class);
                                              ^
  symbol:   class EventEmitter
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:94: error: cannot find symbol
    ActivityProvider activityProvider = mModuleRegistry.getModule(ActivityProvider.class);
    ^
  symbol:   class ActivityProvider
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesModule.java:94: error: cannot find symbol
    ActivityProvider activityProvider = mModuleRegistry.getModule(ActivityProvider.class);
                                                                  ^
  symbol:   class ActivityProvider
  location: class InAppPurchasesModule
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesPackage.java:12: error: method does not override or implement a method from a supertype
  @Override
  ^
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\InAppPurchasesPackage.java:14: error: cannot find symbol        
    return Collections.singletonList((ExportedModule) new InAppPurchasesModule(context));
                                      ^
  symbol:   class ExportedModule
  location: class InAppPurchasesPackage
C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\UpdateListener.java:36: error: cannot find symbol
    Promise promise = BillingManager.promises.get(BillingManager.ACKNOWLEDGING_PURCHASE);
    ^
  symbol:   class Promise
  location: class UpdateListener
Note: C:\Users\piotr\Documents\Code\app-limsas\football-team-manager\node_modules\expo-in-app-purchases\android\src\main\java\expo\modules\inapppurchases\BillingManager.java uses unchecked or unsafe operations.  
Note: Recompile with -Xlint:unchecked for details.
57 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':expo-in-app-purchases:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* 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 44s

Sadly it does not work. Still getting the same errors. This is because of 2 things, which I mentioned in my PR #14024.
The first one is fixed (missing dependency), but I’m not sure how to fix the second one (Gradle running IAP command ahead of modules-core).

https://github.com/expo/expo/pull/14024

Thanks for your reply. So I guess the best what I can do is to wait for this issue to be fixed, is that correct?

Yes, that’s right.

1 Like

expo-in-app-purchases@11.0.1 published and no longer relies on expo-modules-core

1 Like

I can confirm that it compiles now. Big thanks!

1 Like

I am using "react-native-unimodules": "^0.10.1", and when I run npm install expo-in-app-purchases, it installs "expo-in-app-purchases": "^10.2.0",

It compiles and can run. However, in the Play Console, the warning said to update the billing library. Should I update my unimodules? or should I set the expo-iap version manually? Thanks.

^10.2.0 is the same as >=10.2.0 <11.0.0-0 , so you need to change your expo-iap version manually in your package.json. It’s not a bug, it’s just how NPM works.

1 Like

Hi charliecruzan
I am using expo-in-app-purchases": 11.0.1 but I still getting the warning message
Do we need waiting for some updates ?
Or the problem on my side ?

Problem is probably on your side, since this is confirmed working for other devs- make sure you have no old versions of your app in any release tracks, or contact Google Play

Thanks, I will check old versions in release tracks.

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.