Android facebook-sdk 在土耳其语中崩溃

Posted

技术标签:

【中文标题】Android facebook-sdk 在土耳其语中崩溃【英文标题】:Android facebook-sdk crash in Turkish 【发布时间】:2018-07-30 11:24:33 【问题描述】:

当我选择 Turkish language 时,出现错误。 其他语言没问题,如果我删除 facebook-sdk 修复它。但我必须使用 facebook-sdk..

java.lang.IllegalArgumentException: CLİCK 不是 com.facebook.appevents.codeless.internal.EventBinding$ActionType 中的常量

repositories 
maven  url 'https://maven.fabric.io/public' 
mavenCentral()

implementation 'com.facebook.android:facebook-android-sdk:[4,5)'

清单

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

注意:来自 facebook 的 İ 信返回,它是由运行时创建的。我没有写任何İ信。请不要将İ字母写为小写。我已经知道了。

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。 解决方法是使用 4.33.0 及更低版本。

implementation 'com.facebook.android:facebook-android-sdk:4.33.0'

更新 (12.06.20) 最新的 Facebook SDK (5.15.3) 没有崩溃

【讨论】:

【参考方案2】:

我对 facebook-sdk 一无所知,但我在单词 CLİCK 中的大写字母 I 顶部看到一个点,在土耳其语环境中,toUppercase("i") 不会返回 "I",但是"İ"。所以我敢打赌,在某处使用toUpperCase() 将小写"click" 转换为"CLİCK",而无需指定合理的语言环境,例如Locale.ROOT.

由于这是土耳其语大小写转换的一个非常特殊的“功能”(据我所知,没有其他语言),这可以解释为什么这只发生在土耳其语中。

也许对 facebook-skd 有更多了解的人可以为您指出案例转换发生的地方以及如何修复它。

【讨论】:

如果您没有想法,请不要分享您的小想法。 CL"İ"CK 关键字在运行时从 facebook 返回。我的项目没有 CL"İ"CK 关键字。当你写下你写的评论时,你的自我就像你自己一样大,点击​​ bla bla bla。把你的评论留给你自己。我可以构建项目,但这意味着我没有使用任何 CL"i"CK 关键字。你只是在浪费时间而已 你知道什么是运行时吗?

以上是关于Android facebook-sdk 在土耳其语中崩溃的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ubuntu 中为 python 安装 facebook-sdk?

获取当前时区缩写 Android

Facebook-sdk python模块没有属性GraphAPI

ios 应用程序的用户是不是可以使用 facebook-sdk 在 facebook 上喜欢 URL?

谷歌地图上两个位置之间的Android路线

无法导入 facebook-sdk 4.0.1