MediaManager 已初始化

问题描述 投票:0回答:2

我想将图像上传到 Cloudinary。我已经用 firebase 做到了这一点,效果很好。但是,客户想要 Cloudinary。

我正在传递字节数组,如下所示

    val outputStream = ByteArrayOutputStream()
    capture.compress(Bitmap.CompressFormat.JPEG, 100, outputStream)
    val data = outputStream.toByteArray()

    val config = HashMap<String, String>()
    config.put("cloud_name", "carflux")
    MediaManager.init(requireContext(), config)

    val uploadRequest = MediaManager.get().upload(data).unsigned("of6bplnq")
        .option("resource_type", "image")
        .maxFileSize(5 * 1024 * 1024)
    uploadRequest.dispatch(requireContext())

我收到错误

MediaManager is already initialized

我已经彻底检查过了,我只在一个地方初始化了它。

我还有什么做错的地方吗?

java android cloudinary
2个回答
0
投票

科特林 我通过创建一个静态对象并创建一个函数来启动实例(如果未初始化)来修复它。

**物体**

object ApplicationObject{
    private var mediaManager: Any? = null

    fun startMediaManager(context:Context){
        if (mediaManager == null){
            val config = HashMap<String, Any>()
            config["cloud_name"] = "socialseller"
            config["secure"] = false

            mediaManager = MediaManager.init(context, config)
        }
    }
}

注意:仅传递应用程序上下文 活动中

ApplicationObject.startMediaManager(this.applicationContext)

在片段中

ApplicationObject.startMediaManager(requireContext().applicationContext)

0
投票

Java

您可以创建一个全局单例对象 MediaManagerState 和一个公共静态方法 isMediaManagerInitialized()

public class MediaManagerState {
    private static boolean isMediaManagerInitialized = false;
    public static boolean isMediaManagerInitialized() {
        return isMediaManagerInitialized;
    }
    public static void initializeMediaManager() {
        isMediaManagerInitialized = true;
    }
}

如果有人有任何其他想法请告诉我,我已经尽力了

© www.soinside.com 2019 - 2024. All rights reserved.