You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用SnapKit.init()时抛出java.lang.IllegalStateException: client id must be set异常的排查求助

调用SnapKit.init()时抛出java.lang.IllegalStateException: client id must be set异常的排查求助

各位好,我最近在开发一个Flutter插件,需要集成SnapKit的CreativeKit功能,但卡在初始化这一步了——每次调用SnapKit.initSDK()都会抛出java.lang.IllegalStateException: client id must be set!异常。

我已经严格按照SnapKit的官方文档完成了配置:

  • 在res/values/strings.xml中定义了对应Snap开发者平台申请的Client ID:<string name="snapsdk_client_id">我的真实Client ID</string>
  • 在AndroidManifest.xml的<application>标签内添加了meta-data配置:
    <meta-data 
        android:name="com.snap.clientId" 
        android:value="@string/snapsdk_client_id" />
    
  • 为了确认配置是否生效,我还特意去app/build/intermediates/merged_manifests目录下查看了编译后合并的最终manifest文件,里面确实存在这个meta-data标签,且值完全正确。

但就是在执行SnapKit.initSDK(flutterPluginBinding.applicationContext)时触发了异常。以下是我在Flutter插件中的初始化代码:

import android.content.pm.PackageManager
import com.snap.corekit.SnapKit
import com.snap.creativekit.SnapCreative
import com.snap.creativekit.api.SnapCreativeKitApi
import com.snap.creativekit.media.SnapMediaFactory
import com.snap.creativekit.media.SnapPhotoFile
import com.snap.creativekit.media.SnapSticker
import com.snap.creativekit.media.SnapVideoFile
import com.snap.creativekit.models.SnapContent
import com.snap.creativekit.models.SnapLiveCameraContent
import com.snap.creativekit.models.SnapPhotoContent
import com.snap.creativekit.models.SnapVideoContent
import io.flutter.embedding.engine.plugins.FlutterPlugin
import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugin.common.MethodChannel.MethodCallHandler
import io.flutter.plugin.common.MethodChannel.Result
import java.io.File

override fun onAttachedToEngine(flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
    channel = MethodChannel(flutterPluginBinding.binaryMessenger, METHOD_CHANNEL)
    channel.setMethodCallHandler(this)
    // 该行代码抛出java.lang.IllegalStateException: client id must be set!
    SnapKit.initSDK(flutterPluginBinding.applicationContext)
    creativeKitApi = SnapCreative.getApi(flutterPluginBinding.applicationContext)
    mediaFactory = SnapCreative.getMediaFactory(flutterPluginBinding.applicationContext)
}

目前我已经排查过的点:

  1. 确认Client ID是从Snap开发者平台正确复制的,无空格、拼写错误
  2. 验证了合并后的manifest配置无误
  3. 初始化时传入的是Application上下文,而非Activity上下文,应该符合要求

实在找不到问题所在了,有没有大佬遇到过类似的情况?或者能给我一些排查的方向?比如会不会是Flutter插件的初始化时机问题?或者SnapKit版本与Flutter引擎版本不兼容?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 08:29:35