当前位置: 首页 > 知识库问答 >
问题:

manifestPlaceholders值不是字符串

井翰
2023-03-14

在我的清单上。xml文件I具有以下元数据标记,应动态填充:

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="${FACEBOOK_APP_ID}"/>

我的gradle文件看起来像这样:

manifestPlaceholders = [
                GOOGLE_PROJECT_ID: "A888844613784",
                FACEBOOK_APP_ID: "888570042741264"
        ]

“建造”之后

 <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="1481023616.000000" />

不幸的是,这不是一个字符串,而是一个浮点值。这是不对的,也不是我想要的。

我知道有另一种方法可以在字符串中定义FACEBOOK\u APP\u ID。xml文件。但是,由于我有很多口味,如果我们将所有与口味相关的参数都放在构建中,那么就很好维护了。gradle文件,而不是字符串。xml文件。

有人知道如何避免字符串到浮点的转换吗?

共有3个答案

王渊
2023-03-14

这是为我工作(如果你不使用口味,只是把resValue到defaultConfig):

productFlavors {
    production {
        resValue 'string', 'facebookAppId', '22222222222'
        resValue 'string', 'facebookSchemeId', 'fb22222222222'
    }

    development {
        resValue 'string', 'facebookAppId', '11111111111'
        resValue 'string', 'facebookSchemeId', 'fb11111111111'
    }
}

然后在明显:

    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebookAppId" />

    <activity
        android:name="com.facebook.CustomTabActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data android:scheme="@string/facebookSchemeId" />
        </intent-filter>
    </activity>
罗渝
2023-03-14

我使用ManifestPlaceholder并通过转义引号强制gradle识别字符串,如:manifestPlaceholders=[facebook\u应用程序\u id:“9999009990000\”,fb\u登录\u协议\u方案:“FB9999009990000”]

第二个参数不需要使用它,因为它前面有字符串fb

沈英勋
2023-03-14

您可以使用以下代码从生成中将字符串值添加到字符串资源中。渐变文件:

resValue 'string', 'FACEBOOK_APP_ID', 'facebook_application_id'

但我不确定Android是否会出现。xml文件不支持特定于味道的字符串(我记得如果您尝试,您会得到警告,但我不确定)。

 
  FACEBOOK_APP_ID: "888570042741264\0"

 

<罢工>

编辑:

当直接从build.gradle文件中使用时,代码空终止符方法似乎不起作用,但是当在 AndroidManifest.xml文件中使用空终止符时,它确实起作用:

 
  <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="${FACEBOOK_APP_ID}\0"/>

 

 类似资料:
  • 我有一个简单的不透明度滑块使用反应钩,看起来像这样 我在像这样的表中设置不透明度 但当我运行我的应用程序时,DOM中的不透明度显示为一个字符串,如下所示 为什么不透明度值显示为字符串而不是数字?

  • 问题内容: 如何拆分字符串并获取NULL值而不是空字符串。 我特别感兴趣的两个方法和。我希望这个查询: 将返回第三行而不是空字符串。有没有简单的方法可以做到这一点,即使用特殊字符?我的意思是: 我希望我可以使用方法从字符串中提取NULL : 从这里获取的代码:https : //sqlperformance.com/2016/03/t-sql-queries/string- split 问题答案:

  • 我试图检测字符串是否有NumericValue和AlphaValue。如果它只是数字,那么;如果它是数字,那么。我找不到办法让它发挥作用。我似乎找到了一种方法,但在运行时崩溃了,在logcat中声明,if语句是一个问题,但我不知道它是为什么或如何出现的。 用于帮助的链接是: 如何在Java中检查字符串是否只包含数字 Java-查看字符串中是否包含任何字符 告诉字符串是否包含a-z字符 主要活动;

  • 我有一个作为字符串传入的句子,我正在对单词“and”进行替换,我想用“”替换它。它并没有用空白代替“和”。下面是我的逻辑示例。当我调试这个的时候,逻辑就落在句子里了。代替 这里有我遗漏的东西吗。

  • 我试图上传csv到我的mysql数据库使用jooq,但我得到以下错误。我在网上尝试了各种建议的解决方案,但都没能解决 我如何将csv上传到jooq 我确保文件在utf-8中,但是当有UTF-8字符记录时,无法保存在DB中并抛出上述错误。我确保使用 前端ajax: 我正在通过java rest从前端读取文件 并在传递给jooq之前在本地系统中递归写入文件 我将DB设置为接受utf-8,并进行了验证

  • 问题内容: 我在这里的研究中得到了不同的答案。 有人可以验证Redis服务器只能存储任何数值的表示吗? 例如,如果我在lpush中使用具有双重类型的Java客户端(Jedis),在发送给Redis之前是否需要将其转换为等效于字符串类型的内容? 还是有一种方法可以发送诸如double之类的实际数字类型?如果是这样,是否有任何示例代码说明了如何实现此目的? 谢谢 问题答案: Redis将所有内容存储在