- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在手机上运行我的 android 应用程序时意外收到以下错误。基本上在应用程序中,它会调用消息服务,以便我能够运行我的即时消息。我正在使用 Sinch for android 来处理我的即时消息。
下面是日志猫消息:
10-08 00:34:31.550: E/AndroidRuntime(1610): FATAL EXCEPTION: main
10-08 00:34:31.550: E/AndroidRuntime(1610): Process: com.dooba.beta, PID: 1610
10-08 00:34:31.550: E/AndroidRuntime(1610): java.lang.UnsatisfiedLinkError: Couldn't load sinch-android-rtc from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.dooba.beta-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.dooba.beta-1, /system/lib]]]: findLibrary returned null
10-08 00:34:31.550: E/AndroidRuntime(1610): at java.lang.Runtime.loadLibrary(Runtime.java:358)
10-08 00:34:31.550: E/AndroidRuntime(1610): at java.lang.System.loadLibrary(System.java:526)
10-08 00:34:31.550: E/AndroidRuntime(1610): at com.sinch.android.rtc.internal.natives.jni.UserAgentFactory.<clinit>(UserAgentFactory.java:9)
10-08 00:34:31.550: E/AndroidRuntime(1610): at com.sinch.android.rtc.internal.client.ServiceFactory.createUserAgent(ServiceFactory.java:44)
10-08 00:34:31.550: E/AndroidRuntime(1610): at com.sinch.android.rtc.internal.client.DefaultSinchClient.<init>(DefaultSinchClient.java:155)
10-08 00:34:31.550: E/AndroidRuntime(1610): at com.sinch.android.rtc.internal.client.InternalSinchClientFactory.createSinchClient(InternalSinchClientFactory.java:14)
10-08 00:34:31.550: E/AndroidRuntime(1610): at com.sinch.android.rtc.DefaultSinchClientBuilder.build(DefaultSinchClientBuilder.java:95)
10-08 00:34:31.550: E/AndroidRuntime(1610): at com.dooba.beta.MessageService.startSinchClient(MessageService.java:66)
10-08 00:34:31.550: E/AndroidRuntime(1610): at com.dooba.beta.MessageService.onStartCommand(MessageService.java:56)
10-08 00:34:31.550: E/AndroidRuntime(1610): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2702)
10-08 00:34:31.550: E/AndroidRuntime(1610): at android.app.ActivityThread.access$2100(ActivityThread.java:135)
10-08 00:34:31.550: E/AndroidRuntime(1610): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)
10-08 00:34:31.550: E/AndroidRuntime(1610): at android.os.Handler.dispatchMessage(Handler.java:102)
10-08 00:34:31.550: E/AndroidRuntime(1610): at android.os.Looper.loop(Looper.java:136)
10-08 00:34:31.550: E/AndroidRuntime(1610): at android.app.ActivityThread.main(ActivityThread.java:5017)
10-08 00:34:31.550: E/AndroidRuntime(1610): at java.lang.reflect.Method.invokeNative(Native Method)
10-08 00:34:31.550: E/AndroidRuntime(1610): at java.lang.reflect.Method.invoke(Method.java:515)
10-08 00:34:31.550: E/AndroidRuntime(1610): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
10-08 00:34:31.550: E/AndroidRuntime(1610): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
10-08 00:34:31.550: E/AndroidRuntime(1610): at dalvik.system.NativeStart.main(Native Method)
下面是 MessageService Activity :
public class MessageService extends Service implements SinchClientListener {
private static final String APP_KEY = "xxxxx";
private static final String APP_SECRET = "xxxxx";
private static final String ENVIRONMENT = "sandbox.sinch.com";
private final MessageServiceInterface serviceInterface = new MessageServiceInterface();
private SinchClient sinchClient = null;
private MessageClient messageClient = null;
private String currentUserId;
private LocalBroadcastManager broadcaster;
private Intent broadcastIntent = new Intent("com.dooba.beta.MessagingActivity1");
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
currentUserId = ParseUser.getCurrentUser().getObjectId();
if (currentUserId != null && !isSinchClientStarted()) {
startSinchClient(currentUserId);
}
broadcaster = LocalBroadcastManager.getInstance(this);
return super.onStartCommand(intent, flags, startId);
}
public void startSinchClient(String username) {
sinchClient = Sinch.getSinchClientBuilder().context(this).userId(username).applicationKey(APP_KEY)
.applicationSecret(APP_SECRET).environmentHost(ENVIRONMENT).build();
sinchClient.addSinchClientListener(this);
sinchClient.setSupportMessaging(true);
sinchClient.setSupportActiveConnectionInBackground(true);
sinchClient.checkManifest();
sinchClient.start();
}
private boolean isSinchClientStarted() {
return sinchClient != null && sinchClient.isStarted();
}
@Override
public void onClientFailed(SinchClient client, SinchError error) {
broadcastIntent.putExtra("success", false);
broadcaster.sendBroadcast(broadcastIntent);
sinchClient = null;
}
@Override
public void onClientStarted(SinchClient client) {
broadcastIntent.putExtra("success", true);
broadcaster.sendBroadcast(broadcastIntent);
client.startListeningOnActiveConnection();
messageClient = client.getMessageClient();
}
@Override
public void onClientStopped(SinchClient client) {
sinchClient = null;
}
@Override
public IBinder onBind(Intent intent) {
return serviceInterface;
}
@Override
public void onLogMessage(int level, String area, String message) {
}
@Override
public void onRegistrationCredentialsRequired(SinchClient client, ClientRegistration clientRegistration) {
}
public void sendMessage(String recipientUserId, String textBody) {
if (messageClient != null) {
WritableMessage message = new WritableMessage(recipientUserId, textBody);
messageClient.send(message);
}
}
public void addMessageClientListener(MessageClientListener listener) {
if (messageClient != null) {
messageClient.addMessageClientListener(listener);
}
}
public void removeMessageClientListener(MessageClientListener listener) {
if (messageClient != null) {
messageClient.removeMessageClientListener(listener);
}
}
@Override
public void onDestroy() {
sinchClient.stopListeningOnActiveConnection();
sinchClient.terminate();
}
public class MessageServiceInterface extends Binder {
public void sendMessage(String recipientUserId, String textBody) {
MessageService.this.sendMessage(recipientUserId, textBody);
}
public void addMessageClientListener(MessageClientListener listener) {
MessageService.this.addMessageClientListener(listener);
}
public void removeMessageClientListener(MessageClientListener listener) {
MessageService.this.removeMessageClientListener(listener);
}
public boolean isSinchClientStarted() {
return MessageService.this.isSinchClientStarted();
}
}
}
如有任何帮助,我们将不胜感激。
更新添加库的屏幕
![在此处输入图片描述][3]
更新 3
10-09 18:27:08.450: E/AndroidRuntime(999): FATAL EXCEPTION: main
10-09 18:27:08.450: E/AndroidRuntime(999): java.lang.ExceptionInInitializerError
10-09 18:27:08.450: E/AndroidRuntime(999): at com.sinch.android.rtc.internal.client.ServiceFactory.createUserAgent(ServiceFactory.java:44)
10-09 18:27:08.450: E/AndroidRuntime(999): at com.sinch.android.rtc.internal.client.DefaultSinchClient.<init>(DefaultSinchClient.java:157)
10-09 18:27:08.450: E/AndroidRuntime(999): at com.sinch.android.rtc.internal.client.InternalSinchClientFactory.createSinchClient(InternalSinchClientFactory.java:14)
10-09 18:27:08.450: E/AndroidRuntime(999): at com.sinch.android.rtc.DefaultSinchClientBuilder.build(DefaultSinchClientBuilder.java:95)
10-09 18:27:08.450: E/AndroidRuntime(999): at com.dooba.beta.MessageService.startSinchClient(MessageService.java:56)
10-09 18:27:08.450: E/AndroidRuntime(999): at com.dooba.beta.MessageService.onStartCommand(MessageService.java:40)
10-09 18:27:08.450: E/AndroidRuntime(999): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2490)
10-09 18:27:08.450: E/AndroidRuntime(999): at android.app.ActivityThread.access$1900(ActivityThread.java:130)
10-09 18:27:08.450: E/AndroidRuntime(999): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292)
10-09 18:27:08.450: E/AndroidRuntime(999): at android.os.Handler.dispatchMessage(Handler.java:99)
10-09 18:27:08.450: E/AndroidRuntime(999): at android.os.Looper.loop(Looper.java:137)
10-09 18:27:08.450: E/AndroidRuntime(999): at android.app.ActivityThread.main(ActivityThread.java:4745)
10-09 18:27:08.450: E/AndroidRuntime(999): at java.lang.reflect.Method.invokeNative(Native Method)
10-09 18:27:08.450: E/AndroidRuntime(999): at java.lang.reflect.Method.invoke(Method.java:511)
10-09 18:27:08.450: E/AndroidRuntime(999): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
10-09 18:27:08.450: E/AndroidRuntime(999): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-09 18:27:08.450: E/AndroidRuntime(999): at dalvik.system.NativeStart.main(Native Method)
10-09 18:27:08.450: E/AndroidRuntime(999): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load sinch-android-rtc: findLibrary returned null
10-09 18:27:08.450: E/AndroidRuntime(999): at java.lang.Runtime.loadLibrary(Runtime.java:365)
10-09 18:27:08.450: E/AndroidRuntime(999): at java.lang.System.loadLibrary(System.java:535)
10-09 18:27:08.450: E/AndroidRuntime(999): at com.sinch.android.rtc.internal.natives.jni.UserAgentFactory.<clinit>(UserAgentFactory.java:9)
[3]: http://i.stack.imgur.co
m/5Kx3e.png
最佳答案
您需要将 sinch 库复制到您的项目中,请参阅 sinch client for android documentation
下载the sinch android sdk zip , 将libs
文件夹中的内容复制到项目根目录下的libs
中。
清理并重建项目。在测试 apk 之前,以 zip 格式打开 apk 并确保 .so 文件位于 lib\*\
文件夹中;
如果您在使用 Eclipse 正确打包应用程序时遇到问题,please consider using sinch's documentation and use android studio as they suggest
关于java - UnsatisfiedLinkError : Couldn't load sinch-android-rtc from loader dalvik. 系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26247986/
我从this下载了代码。我成功生成了应用程序 key 。 我实现了上面下载的示例中的示例代码,它在移动和网络上运行良好。但是当我尝试实现视频通话时出现错误 检索媒体流时出错 Overconstrain
我正在尝试访问另一个类中的一个类,但可能会出现此错误。我正在使用 sinch 在我的应用程序中实现应用程序到应用程序的电话调用,但它仍然无法正常工作。 这是我的错误 FATAL EXCEPTION:
无人应答调用以“超时”状态结束之前的时间似乎为 45 秒。 可以在 JS 或 Android api 中的任何位置进行调整吗? 最佳答案 不在 SDK 中,但如果您给我发邮件,我会在配置中为您更改它。
我已经使用 Parse + Sinch 设置了一个聊天应用程序(我主要使用 this official tutorial),并且我正在尝试以特定方式获取通知: 当MessagingActivity打开
是否可以基于唯一用户获得累积的 call 建立时间? 我在仪表板上找不到该信息。 最佳答案 该信息在Sinch仪表板中不可用,但可以通过REST API访问。作为合作伙伴,您还可以下载可用于收集这些指
我们可以使用 sinch api 在 swift 中创建一个即时消息应用程序吗?我尝试在 swift 应用程序中导入 sinch 框架,但导入后无法将 sinch 类导入到我的应用程序中。请帮忙。 最
SINCallDelegate 的所有委托(delegate)方法都工作正常,但大多数时候,尽管客户端连接成功,但音频无法工作。 最佳答案 Swift- 5 非常简单,我就完成了 //MARK:- a
我正在开发 Android 聊天应用程序,一切都很顺利。我已经设法将用户添加到解析数据库并在 friend fragment 上显示用户。 但后来 Sinch 来了。我按照他们网站上的说明将 SDK
我关注了 sinch tutorial用于制作消息传递应用程序。基于本教程,sinch 客户端从主要 Activity 开始。我能够使用 Parse 发送推送通知并创建一个通知生成器,但是当用户点击它
我需要使用 Sinch API 发送带有阿拉伯语文本的短信。我的短信包含 - 英语、阿拉伯语和数字号码。 我尝试过的 我已经阅读了 Sinch 的文档,但他们没有提供任何有关如何使用 UTF-16BE
如果应用程序在 iPhone(iOS 10) 中处于关闭状态,则无法发起调用。 我正在使用推送套件服务进行调用。如果应用程序在后台,我正在接听电话,但如果应用程序处于关闭状态,则会收到来自服务器的通知
我已经在 ios swift 项目中实现了 sinch 视频通话我已经遵循了 sinch 实现文档中给出的所有过程 https://www.sinch.com/docs/video/ios/#call
我实现了 Sinch + PushKit + CallKit,一切正常,但有一个脚本无法正常工作。第一个用户使用应用程序并将其从设备内存中删除,第二个用户第一次调用,第一个用户没有接听电话,如果第二个
我正在尝试在 Sinch 3.0.1 SDK 中运行消息传递示例应用程序。在 src 文件中,这一行: package com.sinch.android.rtc.sample.pstn; 抛出错误。
如何在Android中将sinch的远程 View 设置为全屏。 我尝试了 VideoController.setResizeBehaviour,但它不起作用。 最佳答案 您需要使用 Sinch se
我在我的项目中尝试了一个 sinch 视频通话示例,但是,我无法理解 sinch 视频通话示例中 sinchservice 类中的 CALL_ID 是什么。 最佳答案 这只是自定义字段名称,将在您接到
我想使用 sinch 创建一个 android 付费通话应用程序。sinch 包含一个回调 API 来获取调用的详细信息。我想使用它,但不知道如何使用。我阅读了文档。但这还不够 我的问题是, 对服务器
我已经正确设置了从推送通知开始调用的所有内容,但是接收者的 SINClient 没有调用 client:didReceiveIncomingCall: 方法,所以用户不可能接听电话。 我已经验证我的有
我希望我的 sinch 应用程序调用一个号码并要求应答者输入一个号码以选择他的语言。 到目前为止,我可以让她使用 POST 请求调用电话,其正文为: { "method
我只想在我的应用程序中使用sinch进行调用,到目前为止我已经关注了官方documentation因此,按照此链接,我正在构建 Sinch 客户端,如下所示: private var sinchCl
我是一名优秀的程序员,十分优秀!