调用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) }
目前我已经排查过的点:
- 确认Client ID是从Snap开发者平台正确复制的,无空格、拼写错误
- 验证了合并后的manifest配置无误
- 初始化时传入的是Application上下文,而非Activity上下文,应该符合要求
实在找不到问题所在了,有没有大佬遇到过类似的情况?或者能给我一些排查的方向?比如会不会是Flutter插件的初始化时机问题?或者SnapKit版本与Flutter引擎版本不兼容?
内容来源于stack exchange
相关产品推荐
相关产品推荐

