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