UIKit 2.2.4 에서 couldn't retrieve channel 이라고 Toast 가 뜹니다

먼저 좋은 서비스 제공에 감사합니다.

sendbird의 UIKit 을 경험하기 위해 하기 가이드를 참고하여 진행하였습니다.
(| UIKit Android SDK | Sendbird Docs )

너무 쉽게 잘 가이드되어 앱 빌드 및 실행까지는 했지만
첫화면이 흰바탕에 “couldn’t retrieve channel” 이라고 Toast 만 뜹니다.

BaseApplication.java 의 APP_ID 값도 sendbird 콘솔에서 생성한 Application ID 값으로 입력하였고
Channel 과 User도 DashBoard 에서 추가 하였습니다.

워낙 가이드가 심플하고 잘 되어있어 그대로 따라 하기 쉬웠는데 혹시 제가 놓친 부분이 있을까요?

  • UIKit : 2.2.4
  • android OS : 11

바쁘시겠지만 확인 부탁드립니다.

감사합니다.

안녕하세요 @uangelsjp ,
센드버드 커뮤니티에 오신 걸 환영합니다!

제공해 주신 정보만으로 문제를 찾기는 조금 어려울것 같습니다.
가능하시다면, SendbirdUIKit initialize부분의 코드를 제공해 주실 수 있나요?
혹은, 아래의 샘플코드를 참조해 보실 수 있습니다.

안녕하세요.

먼저 빠른 답변 감사합니다.

제가 작성한 initialize 코드는 하기와 같습니다.

public class BaseApplication extends Application {
   @Override
   public void onCreate() {
      super.onCreate();

      SendBirdUIKit.init(new SendBirdUIKitAdapter() {
         @Override
         public String getAppId() {
            return "1C06786A-BCCD-4EF5-A8C0-8EEE52B120DF";  // Specify your Sendbird application ID.
         }

         @Override
         public String getAccessToken() {
            return "";
         }

         @Override
         public UserInfo getUserInfo() {
            return new UserInfo() {
               @Override
               public String getUserId() {
                  return "user1";  // Specify your user ID.
               }

               @Override
               public String getNickname() {
                  return "user1";  // Specify your user nickname.
               }

               @Override
               public String getProfileUrl() {
                  return "";
               }
            };
         }

         @Override
         public InitResultHandler getInitResultHandler() {
            return new InitResultHandler() {
               @Override
               public void onMigrationStarted() {
                  // DB migration has started.
               }

               @Override
               public void onInitFailed(SendBirdException e) {
                  // If DB migration fails, this method is called.
               }

               @Override
               public void onInitSucceed() {
                  // If DB migration is successful, this method is called and you can proceed to the next step.
                  // In the sample app, the `LiveData` class notifies you on the initialization progress
                  // And observes the `MutableLiveData<InitState> initState` value in `SplashActivity()`.
                  // If successful, the `LoginActivity` screen
                  // Or the `HomeActivity` screen will show.
               }
            };
         }
      }, this);
   }
}

또한 uikit-sample 은 정상적으로 동작합니다만…
제가 궁금한 부분은 …하기와 같이 ChannelListActivity 를 상속만으로 기본적인 UIKit UI 가 노출되는 것으로 가이드를 이해하였으나 예상대로 되지 않아 문의드린 내용입니다.

public class MainActivity extends ChannelListActivity {
    // Add this line.
    // If you’re going to inherit `ChannelListActivity`, don’t implement `setContentView()` in the activity.
}

감사합니다.

@uangelsjp 답변이 늦어져서 죄송합니다.

UIKit initialize 코드에는 문제가 없어 보입니다.
BaseApplication클래스를 생성하신후, AndroidManifest.xml파일에 등록하셨는지 확인 부탁드립니다.
다음 예제는 basic 코드입니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.**********">

    <application
        android:name=".BaseApplication"
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.SBTalkMi0best"
        tools:targetApi="31">
        <activity android:name=".MainActivity" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

그리고, ChannelListActivity의 상속 만으로 아래와 같이 그룹채널 리스트 UI가 노출됩니다.