Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:Firebase remoteConfig getString()方法正在从default.xml中的字符串中删除引号_Android_Firebase_Android Gradle Plugin_Firebase Remote Config_Android Gradle 3.0 - Fatal编程技术网

Android:Firebase remoteConfig getString()方法正在从default.xml中的字符串中删除引号

Android:Firebase remoteConfig getString()方法正在从default.xml中的字符串中删除引号,android,firebase,android-gradle-plugin,firebase-remote-config,android-gradle-3.0,Android,Firebase,Android Gradle Plugin,Firebase Remote Config,Android Gradle 3.0,我有以下远程config\u default.xml文件 <?xml version="1.0" encoding="utf-8"?> <defaultsMap> <entry> <key>LOCAL_JSON</key> <value>[{"title":"TitleA","path":"pathA","image_url":" Some URL A"},{"t

我有以下远程config\u default.xml文件

<?xml version="1.0" encoding="utf-8"?>
<defaultsMap>
       <entry>
            <key>LOCAL_JSON</key>
            <value>[{"title":"TitleA","path":"pathA","image_url":" Some URL A"},{"title":"TitleB","path":"pathB","image_url":" Some URL B"}]</value>
        </entry>
</defaultsMap>
如下图所示

我将相同的字符串放在Firebase remote config console上,一旦应用程序从那里获取该字符串,它就会像我预期的那样将双引号放在字符串中

我仔细检查了这一点,当我使用下面的project gradle文件时,它似乎工作正常

    apply plugin: 'com.github.ben-manes.versions'
    buildscript {
        repositories {
            maven { url "http://dl.bintray.com/populov/maven" }
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.3.3'
            classpath 'me.tatarka:gradle-retrolambda:3.6.1'
            classpath 'com.github.ben-manes:gradle-versions-plugin:0.13.0'
            classpath 'com.stanfy.spoon:spoon-gradle-plugin:1.2.1'
            classpath 'com.google.gms:google-services:3.1.0'
            classpath 'com.google.firebase:firebase-plugins:1.0.5'
        }
    }

    allprojects {
        repositories {
            maven { url "http://dl.bintray.com/populov/maven" }
            maven { url "http://oss.sonatype.org/content/repositories/snapshots" }
            maven { url "https://jitpack.io" }
            jcenter()
            flatDir {
                dirs 'libs'
            }
        }
    }
apply plugin: 'com.github.ben-manes.versions'
buildscript {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath 'com.github.ben-manes:gradle-versions-plugin:0.13.0'
        classpath 'com.stanfy.spoon:spoon-gradle-plugin:1.2.1'
        classpath 'com.google.gms:google-services:3.1.2'
        classpath ('com.google.firebase:firebase-plugins:1.0.5')
    }
}

allprojects {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        maven { url "http://oss.sonatype.org/content/repositories/snapshots" }
        maven { url "https://jitpack.io" }
        jcenter()
        google()
        flatDir {
            dirs 'libs'
        }
    }
}
但是当我更新gradle以对所有库使用新版本时,引号似乎只有在那时才被忽略。 我的新项目梯度文件

    apply plugin: 'com.github.ben-manes.versions'
    buildscript {
        repositories {
            maven { url "http://dl.bintray.com/populov/maven" }
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.3.3'
            classpath 'me.tatarka:gradle-retrolambda:3.6.1'
            classpath 'com.github.ben-manes:gradle-versions-plugin:0.13.0'
            classpath 'com.stanfy.spoon:spoon-gradle-plugin:1.2.1'
            classpath 'com.google.gms:google-services:3.1.0'
            classpath 'com.google.firebase:firebase-plugins:1.0.5'
        }
    }

    allprojects {
        repositories {
            maven { url "http://dl.bintray.com/populov/maven" }
            maven { url "http://oss.sonatype.org/content/repositories/snapshots" }
            maven { url "https://jitpack.io" }
            jcenter()
            flatDir {
                dirs 'libs'
            }
        }
    }
apply plugin: 'com.github.ben-manes.versions'
buildscript {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath 'com.github.ben-manes:gradle-versions-plugin:0.13.0'
        classpath 'com.stanfy.spoon:spoon-gradle-plugin:1.2.1'
        classpath 'com.google.gms:google-services:3.1.2'
        classpath ('com.google.firebase:firebase-plugins:1.0.5')
    }
}

allprojects {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        maven { url "http://oss.sonatype.org/content/repositories/snapshots" }
        maven { url "https://jitpack.io" }
        jcenter()
        google()
        flatDir {
            dirs 'libs'
        }
    }
}

我不知道是哪个库导致了这种情况,但如果有人能指出这一点,那就太好了。

我将此问题发送给firebase帮助团队,并得到以下响应:

这实际上是我们这边的一个已知问题,我们的工程师已经在努力解决这个问题。修复可用时,我无法共享任何详细信息或时间线,但请查看我们的发行说明以了解将来的更新

Gradle tools 3.0.1版似乎有问题。临时解决办法是使用Gradle tools版本2.3.3

在项目级
build.gradle
文件中:

classpath'com.android.tools.build:gradle:3.0.1'
替换为

maven {
        url 'https://maven.google.com'
}
classpath'com.android.tools.build:gradle:2.3.3'

maven {
        url 'https://maven.google.com'
}

嗨Sheraz Ahmad Khilji首先,我为我的英语道歉,我不知道如何把英语写得很好

这是一个问题,因为firebase在地图中转换xml时有一个bug,要解决这个问题,可以使用地图而不是xml

样本:


firebaseConfig.setDefaults(映射);

此更改将使用双引号解决您的问题。

此问题有多种解决方案 1.使用firebaseConfig.setDefaults(映射);用于设置默认配置

2。在.xml文件中的字符串中,在双引号(“)之前使用反斜杠(\)

3.将classpath'com.android.tools.build:gradle:3.0.1'替换为


4.在gradle.properties中添加android.enableapt2=false

如果在默认xml文件中使用三重反斜杠作为转义序列,则它可以工作:

{\\\“someKey\\\”:\\\“someValue\\\”}


将生成
{“someKey”:“someValue”}
作为FirebaseRemoteConfig的
getString()
方法的输出。

尝试通过说“而不是”来转义您的引用。@DougStevenson尝试了它,但仍然没有改变输出:(我建议您提交一份错误报告,以增加问题的分量。默认远程配置中的引号是一个已知问题,我们正在进行修复。服务器参数中的引号与预期一样工作。问题仅限于默认XML中的引号。官方答复为+1,但我认为由于这一点而降级是不值得的。幸运的是,我能够重新表述字符串值并删除所有引号。@gswierczynski我同意你的看法。或者你可以使用一些编码,如Base64。此外,问题只存在于配置的本地副本中,从远程接收的数据不受影响。对于任何查看上述答案的人,第二个取消引号的建议是错误的而且不起作用。