Android:分享到 Facebook Messenger 错误

2023-12-13

我已经尝试修复这个错误一周了,但仍然找不到问题所在。登录正常,但由于某种原因,共享到 Messenger 崩溃。我无法真正理解问题是什么。基本上,我将文本转语音保存到我的设备上,然后尝试共享它。文件保存到设备(我检查过),但Messenger不共享。

这是我的分享代码:

public void shareFile(View view) {
    String sayWhat = "This is what you sound like when you write to me, thanks to the app Messenger Say it! Available now at Google Play";
    HashMap hashmap = new HashMap();
    hashmap.put("utteranceId", sayWhat);
    String location = new StringBuilder(Environment.getExternalStorageDirectory().toString()).append("/").append(name).append(".mp3").toString();


    speed = ((float)speedS.getProgress()/100F)*2.0F;
    pitch=((float)pitchS.getProgress()/100F)*2.0F;
    ttsread.setPitch(pitch);
    ttsread.setSpeechRate(speed);
    ttsread.synthesizeToFile(sayWhat, hashmap, location);

    String mimeType = "audio/mpeg";


    Uri contentUri = Uri.parse(location);
    text.setText(contentUri.toString());
    long futuretime = System.currentTimeMillis() + 1000;
    while (System.currentTimeMillis() < futuretime) {
        synchronized (this) {
            try {
                wait(futuretime - System.currentTimeMillis());
            } catch (Exception e) {
            }
        }
    }
   ShareToMessengerParams params = ShareToMessengerParams.newBuilder(contentUri, "audio/mpeg")
            .setMetaData("com.facebook.sdk.ApplicationId")
            .build();
    MessengerUtils.shareToMessenger(this, 1, params);

    //MessengerUtils.finishShareToMessenger(activity,params);

}

和我的日志猫:

 java.lang.IllegalStateException: Could not execute method of the activity
            at android.view.View$1.onClick(View.java:3969)
            at android.view.View.performClick(View.java:4637)
            at android.view.View$PerformClick.run(View.java:19422)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5586)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.reflect.InvocationTargetException
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at android.view.View$1.onClick(View.java:3964)
            at android.view.View.performClick(View.java:4637)
            at android.view.View$PerformClick.run(View.java:19422)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5586)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.IllegalArgumentException: Unsupported URI scheme: null
            at com.facebook.messenger.ShareToMessengerParams.<init>(ShareToMessengerParams.java:106)
            at com.facebook.messenger.ShareToMessengerParamsBuilder.build(ShareToMessengerParamsBuilder.java:120)
            at com.inc.nicky.messengersayit.PersonalSettings.shareFile(PersonalSettings.java:205)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at android.view.View$1.onClick(View.java:3964)
            at android.view.View.performClick(View.java:4637)
            at android.view.View$PerformClick.run(View.java:19422)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5586)

您需要阅读 logcat 并尝试理解它告诉您什么。

java.lang.IllegalStateException: Could not execute method of the activity

好吧……为什么?

Caused by: java.lang.reflect.InvocationTargetException

这仅意味着它无法调用目标方法 - 与第一条消息几乎相同。还是……为什么?

Caused by: java.lang.IllegalArgumentException: Unsupported URI scheme: null

IllegalArgumentException意味着传递给方法的参数有问题。在哪里?找到代码中的第一个位置:

at com.facebook.messenger.ShareToMessengerParams.<init>(ShareToMessengerParams.java:106)
            at com.facebook.messenger.ShareToMessengerParamsBuilder.build(ShareToMessengerParamsBuilder.java:120)
            at com.inc.nicky.messengersayit.PersonalSettings.shareFile(PersonalSettings.java:205)
 ...

因此,这告诉您在 PersonalSettings.java 的第 205 行,参数存在问题。问题是与空 URI 方案有关build()叫做。

据猜测,我认为 contentUri 参数可能是问题所在。该值是由之前设置的Uri contentUri = Uri.parse(location);. Uri.parse(), 根据文档:

创建一个解析给定编码 URI 字符串的 Uri。

参数: uriString:符合 RFC 2396 的编码 URI

对 URI 进行一些研究(例如来自这个问题)让我们看到uriString需要有一个类似的方案http:// or file://在字符串的开头。

在你的情况下,你正在打电话Uri.parse使用普通文件名没有计划,导致 logcat 中向您显示错误。

添加适当的方案或使用辅助函数Uri类应该有助于解决问题:

 Uri contentUri = Uri.fromFile(new File(location));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:分享到 Facebook Messenger 错误 的相关文章

  • 使用 Facebook Graph API 作为链接类型发布

    我正在使用 Facebook Graph API 在用户墙上发布 我给它这些参数 message name description picture link caption 它会发布到墙上 但不会将其视为链接 我知道这一点是因为单击链接时它
  • 使用服务时应用程序终止时音乐暂停

    我正在使用一个Service类在后台播放音乐 当我在顶部显示通知栏时 我的应用程序出现问题 当我终止该应用程序时 音乐停止约 1 秒 然后再次开始 我不知道出了什么问题 我正在关注this https www simplifiedcodin
  • 如何更改我的应用程序的语言[重复]

    这个问题在这里已经有答案了 可能的重复 在 Android 中以编程方式更改语言 https stackoverflow com questions 2900023 change language programatically in an
  • EditText - 在键入时更改文本

    我需要在输入时替换 EditText 内的文本 示例 如果用户按下 A 它将被存储到缓冲区中 并在 EditText 上显示 D 看起来像是按下了 D 现在我可以读取按下的字符 但无法显示 et 中的任何字符以避免 stackoverflo
  • 如何在 Android 中编辑 asset 文件夹中的文本文件?

    我正在使用 Android 中资产文件夹中的文本文件 我想动态更改该文本文件内的数据 我试图按如下方式打开该文件 FileOutputStream fos this getAssets openNonAssetFd data txt cre
  • Android 两个日期之间的差异

    我有两个约会 例如 String date 1 yyyyMMddHHmmss String date 2 yyyyMMddHHmmss 我想打印差异 例如 2d 3h 45m 我怎样才能做到这一点 谢谢 DateTimeUtils obj
  • 在应用程序上按下类似按钮时自动刷新时间线页面?

    在时间轴发布到页面上之前 当用户在页面上按下 点赞 按钮时 页面会自行刷新 现在 启用时间线后 如果您访问应用程序并按右上角的类似按钮 页面不会自行刷新 并且应用程序不会识别用户 喜欢 该页面 当用户按下 喜欢 按钮时 是否有一种方法或事件
  • Android Volley 服务器错误

    I am posting data all strings to varchar variables in server but i am getting volley server error or badnetwork performa
  • 如何使用baseadapter自定义listview

    我想创建一个定制的ListView像这样 我想我必须使用BaseAdapter但我对此一无所知 主要 xml
  • 如何在ionic框架+ angularjs中调用函数?

    我正在使用 ionic 框架来制作 android 应用程序 我有 cordova5 1版本 first 我使用命令行创建一个项目ionic 启动 myApp 选项卡 我添加了android平台 现在我需要将java代码与javascrip
  • Google 语音识别器无法在 Android 4.x 上启动

    我偶然发现了这个随机问题 这是我的代码 mSpeechRecognizer SpeechRecognizer createSpeechRecognizer mContext initializeRecognitionListener mSp
  • 更改图库中的边框样式

    我正在服用this http www androidpeople com android gallery imageview example 教程 正如你所看到的this http www androidpeople com wp cont
  • RecyclerView 未按预期滚动

    我有一个项目 我使用水平回收器视图 并且我想将一个元素居中 我的实现有效 但并非在所有情况下都可以检查此 GIF 正如您可能注意到的 如果我从左边来 它会正确滚动 如果我从右边来 它会过度滚动很多 我不知道如何停止也不知道如何解决这个问题
  • Facebook 和 google 登录不适用于 beta 测试 APK

    Google 和 Facebook 登录在 Android Studio Tools 中工作正常 但它们不适用于测试版本或 Beta 测试 因此请给我任何解决此问题的线索 联系谷歌支持后我已经解决了这个问题 以下是此问题的修复方法 请按照步
  • Android 应用程序阿拉伯语支持

    我已经按照developer android官方网站上的教程Hello L10进行操作 但没有任何关于阿拉伯语的内容 Android 应用程序要使用阿拉伯语需要执行哪些步骤 例如 用户可以使用组合框或单选按钮来选择英语或阿拉伯语 我已经这样
  • 如何检测屏幕何时关闭?

    是否可以检测屏幕何时关闭并捕获它 我想在 Android 的全局设置中将计时器设置为 15 秒 我正在尝试查找一些如何捕获唤醒锁定模式的信息 只需注册您的应用程序即可执行操作Intent ACTION SCREEN OFF https de
  • SeekBar 未设置实际进度。 SetProgress() 不适用于早期的 Android 版本 [重复]

    这个问题在这里已经有答案了 我有一个应用程序 我想根据从 Web 服务检索到的值设置特定 SeekBar 的进度 但是 当我使用 SetProgress int 时 只有 SeekBar 的 搜索者 被设置 该栏未按预期 填充 它看起来是这
  • 使用 viewModel 从 ChildFragment 访问 ParentFragment 中的 ViewModel

    我正在尝试访问ParentViewModel for ParentFragment from ChildFragment using viewModels 这是我的代码 In ParentFragment class ParentFragm
  • 如何从下到上连续移动图像?

    我一直在研究这个例子http obviam net index php a very basic the game loop for android http obviam net index php a very basic the ga
  • Android Mediaplayer:下载媒体文件的 setDataSource 问题

    我有一个可以录制和播放音频文件的应用程序 一些音频文件是使用 httpclient 使用简单的标准 http 下载来下载的 很长一段时间以来 它就像一种魅力 现在我突然无法播放我下载的文件 该堆栈失败 我将文件存储在 SDCard 上 并且

随机推荐

  • 如何从 URL Android 将图像设置为图像视图

    我正在尝试从 URL 下载并在我的 imageview 中显示图像 我将动态获取该图像 我已经尝试过这种方式 URL url new URL parsedWeatherResponse getWeatherIconUrl Bitmap bm
  • 如何在半夜删除mysql表中的数据?

    我有一个 mysql 表 我希望它每天晚上午夜被 清空 我在网上搜索了答案 但没有找到任何对我有帮助的东西 我的想法是使用 javascript 获取当前时间 然后运行 if 语句并查看它是否等于午夜 以及是否执行删除信息的 php 脚本
  • php - 帮助提高这个 youtube 风格的 url 生成器的效率

    经过一番搜索后 我发现这个 youtube 风格的 url 生成器具有加密功能 可以隐藏原始 id 但是我希望提高效率 因为它将被大量使用 到目前为止我已经改进了 20 任何人都可以帮助我进一步改进它 这是原文 function alpha
  • 使用 QSignalMapper

    我尝试制作一个简单的示例来帮助理解 QSignalMapping 的概念如何在 PySide 中工作 我想通过循环迭代来动态创建一系列按钮 当用户按下其中一个按钮时 我可以激活一个方法 为按下的按钮返回适当的标签 from PySide2
  • 从 Excel 运行 Access 查询

    我试图在 Excel 的 Access 中运行查询 然后使用 VBA 中的 ADO 将这些结果拉入 Excel 文档 不幸的是 我无法弄清楚如何运行访问查询 以便将 Excel 工作表的活动单元格中的数据用作访问查询中的条件 我正在运行 E
  • Python 的舍入问题[重复]

    这个问题在这里已经有答案了 可能的重复 Python 浮点数的舍入误差 我在 Python 中遇到了舍入问题 如果我计算 32 50 0 19 6 1749999999999998 但这应该是 6 175 如果我将 6 1749999999
  • 如何在 JavaScript 中添加元标记

    我想添加对于特定页面 但我的页面是在一个页面中呈现的HTML标签 单击不同模板时 只有内容会发生变化 所以我无法添加 in 部分 有什么办法可以添加 using javascript 您可以添加它 var meta document cre
  • 如何使用Flask获取客户端端口?

    我正在尝试使用 Flask 构建一个简单的 torrent 跟踪器 但遇到了一个问题 如果客户在NAPT请求中包含的网络 端口不正确 我想用 Flask 获取客户端连接端口 在 PHP 中像这样的函数 SERVER REMOTE PORT
  • RequestContext - RouteData 不包含操作

    因此 我创建了自己的 ControllerFactory 并且重载了 GetControllerSessionBehavior 以扩展 MVC 行为 为了完成我的自定义工作 我必须对被调用的操作使用反射 然而我偶然发现了一个奇怪的问题 我无
  • 并行继承层次结构真的是一种代码味道吗?

    我不知道如何在实践中避免并行层次结构 例如考虑一个必须在不同级别上创建 保存 编辑笔记的应用程序 它是一个基于 java swing 的应用程序 域层次结构 AbstractNote lt MonthNote lt DayNote lt P
  • 在 Rails 中设置可选字段

    我使用回形针将头像附加到用户身上 效果很好 但当新用户尝试注册时 它会抱怨头像太小且类型不正确 这就是我验证我的头像的方式 validates attachment size avatar less than gt 1 megabytes
  • Java中如何写入文本文件

    我正在用java做一个项目 我需要添加和修改我的 运行时的文本文件 该文件分组在 jar 中 我正在使用 class getResourceAsStream filename 这个方法我们 可以从类路径读取该文件 我想写入同一个文本文件 对
  • 使用 Google Apps 脚本将 Google Sheet 中的图表正确插入到文档中

    我想使用 Google Apps 脚本将图表从电子表格复制到文档中 插入图表是可行的 但存在 a 权限和 b 格式问题 可以按如下方式插入图表 var b d getBody var charts SpreadsheetApp getAct
  • 映射数组以设置空元素

    Given let input 0 1 2 7 我想得到 let output 1 22 333 4444 55555 666666 7777777 i e value equal key倍key 我怎么能够map 或等效 输入包括empt
  • JTree 延迟加载展开

    希望你一切都好 我有一个 JTree 我使用数据库查询 每个节点 延迟加载 我在屏幕上有一个按钮 当用户单击该按钮时 我会执行一些操作insert update delete在数据库中 然后将模型添加回Jtree仅使用 SQL 的根及其直接
  • 从 Html Agility Pack 下载中,我使用 9 个“HtmlAgilityPack.dll”中的哪一个?

    下载的 HTML Agility Pack zip 文件中有九个文件夹 Net20 Net40 Net40 客户端 Net45 sl3 wp sl4 SL4 windowsphone71 sl5 winrt45 我不知道这些文件夹名称的含义
  • 在 PHP 中将数组元素分配给变量

    我知道这是一个愚蠢的问题 但我被困住了 我有以下数组 Array type gt 8 message gt Use of undefined constant hola assumed hola file gt C wamp www WeC
  • 在 javascript(Angularjs) 中将对象数组转换为单个对象

    如何像这样转换对象数组 display name view dashboard value 1 display name view user value 0 to this view dashboard 1 view user 0 你可以尝
  • 在运行时重新加载 tomcat 日志记录?

    我们当前使用 Tomcat 7 并使用 Djava util logging config file 指定单个日志配置 并使用 Djava util logging manager org apache juli ClassLoaderLo
  • Android:分享到 Facebook Messenger 错误

    我已经尝试修复这个错误一周了 但仍然找不到问题所在 登录正常 但由于某种原因 共享到 Messenger 崩溃 我无法真正理解问题是什么 基本上 我将文本转语音保存到我的设备上 然后尝试共享它 文件保存到设备 我检查过 但Messenger