Android

Android 스튜디오에서 ‘ImmutableList.of’ 메서드를 사용할 수 없을 때 해결 방법

구글플레이 결제 라이브러리6 예제를 따라하다보니 메서드를 사용할 수 없어서 빨간색으로 표기되었다.

ImmutableList productDetailsParamsList =
        ImmutableList.of(
                BillingFlowParams.ProductDetailsParams.newBuilder()
                        // retrieve a value for "productDetails" by calling queryProductDetailsAsync()
                        .setProductDetails(productDetailsLst.get(0))
                        // to get an offer token, call ProductDetails.getSubscriptionOfferDetails() .getOfferToken()
                        // for a list of offers that are available to the user
                        // 구독일 때 구독인 경우 getOfferToken()다음과 같은 방법을 사용해 볼 수 있을 것 같습니다.
                        // https://developer.android.com/reference/com/android/billingclient/api/ProductDetails.SubscriptionOfferDetails#getOfferToken()

                        //.setOfferToken(selectedOfferToken)  //구독용
                        .build()
        );

자바 기본 라이브러리에 ImmutableList는 기본적으로 없는 것인가? 구글 검색을 해보니 라이브러리 2개 있다. 2개 중에 아마거나 추가하면 ImmutableList 메서드를 사용할 수 있다.

하나는

implementation 'com.google.guava:guava:31.1-android' 이고
또 다른 하나는 
implementation 'com.google.firebase:firebase-crashlytics-buildtools:2.7.1' 이다.

라이브러리 추가 후 Sync 처리한 다음에 소스코드 상에서 "import com.google.common.collect.ImmutableList;"를 추가하면 사용할 수 있다.
2개중에 전자를 사용하게 되면 APK용량을 10메가 줄일 수 있다고 한다. 궁금하면 확인해보시길......


[참고]
https://stackoverflow.com/questions/73017515/cannot-resolve-symbol-immutablelist-in-android-studio

Leave a Reply

error: Content is protected !!