首页 > 解决方案 > 发现名称为 setWallpaper 的冲突设置器(与 android.content.ContextWrapper 上定义的 setWallpaper 冲突)

问题描述

我正在尝试HashMap使用以下代码将对象保存在 Firebase 数据库中。

Java 代码

public static void notifyAllMembers(final Context context, final String uploader, final Uri uri, final DatabaseReference path, final String name, final boolean forWho) {

    new Handler().post(new Runnable() {
        public void run() {
            DatabaseReference reference = FirebaseDatabase.getInstance().getReference("notification")
                    .child("members");

            final HashMap<String, Object> map = new HashMap();
            map.put("userID", uploader);
            map.put("uri", uri);
            map.put("livePath", path);
            map.put("fileName", name);
            map.put("forAdmins", forWho);

            reference.push().setValue(map).addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    Toast.makeText(context, "Notified !", Toast.LENGTH_SHORT).show();
                }
            });

        }
    });
}

抛出此运行时异常

com.google.firebase.database.DatabaseException: Found a conflicting setters with name: setWallpaper (conflicts with setWallpaper defined on android.content.ContextWrapper)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper.<init>(com.google.firebase:firebase-database@@17.0.0:504)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.loadOrCreateBeanMapperForClass(com.google.firebase:firebase-database@@17.0.0:312)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.serialize(com.google.firebase:firebase-database@@17.0.0:166)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.access$200(com.google.firebase:firebase-database@@17.0.0:47)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper.serialize(com.google.firebase:firebase-database@@17.0.0:658)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.serialize(com.google.firebase:firebase-database@@17.0.0:167)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.access$200(com.google.firebase:firebase-database@@17.0.0:47)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper.serialize(com.google.firebase:firebase-database@@17.0.0:658)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.serialize(com.google.firebase:firebase-database@@17.0.0:167)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.access$200(com.google.firebase:firebase-database@@17.0.0:47)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper.serialize(com.google.firebase:firebase-database@@17.0.0:658)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.serialize(com.google.firebase:firebase-database@@17.0.0:167)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.access$200(com.google.firebase:firebase-database@@17.0.0:47)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper.serialize(com.google.firebase:firebase-database@@17.0.0:658)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.serialize(com.google.firebase:firebase-database@@17.0.0:167)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.serialize(com.google.firebase:firebase-database@@17.0.0:141)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertToPlainJavaTypes(com.google.firebase:firebase-database@@17.0.0:60)
    at com.google.firebase.database.DatabaseReference.setValueInternal(com.google.firebase:firebase-database@@17.0.0:292)
    at com.google.firebase.database.DatabaseReference.setValue(com.google.firebase:firebase-database@@17.0.0:166)
    at com.codestream.league.Connection.Notifications$1.run(Notifications.java:35)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:145)
    at android.app.ActivityThread.main(ActivityThread.java:6946)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

标签: javaandroidfirebasefirebase-realtime-database

解决方案


推荐阅读