- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在按照 sinch 教程网站上提供的示例消息传递教程尝试一个简单的应用程序。当我试图运行消息服务时,我收到一个不满意的链接错误。我正在使用真实设备并收到此错误。这是
logcat
11-11 17:59:49.996: E/NativeCrypto(28765): ssl=0x5da485a8 cert_verify_callback x509_store_ctx=0x5f55cab0 arg=0x0
11-11 17:59:49.996: E/NativeCrypto(28765): ssl=0x5da485a8 cert_verify_callback calling verifyCertificateChain authMethod=RSA
11-11 17:59:51.576: E/AndroidRuntime(28765): FATAL EXCEPTION: main
11-11 17:59:51.576: E/AndroidRuntime(28765): java.lang.UnsatisfiedLinkError: Couldn't load sinch-android-rtc from loader dalvik.system.PathClassLoader[DexPathList[dexElements=[zip file "/data/app/com.andro_yce.dyad-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.andro_yce.dyad-2, /vendor/lib, /system/lib]]]: findLibrary returned null
11-11 17:59:51.576: E/AndroidRuntime(28765): at java.lang.Runtime.loadLibrary(Runtime.java:359)
11-11 17:59:51.576: E/AndroidRuntime(28765): at java.lang.System.loadLibrary(System.java:514)
11-11 17:59:51.576: E/AndroidRuntime(28765): at com.sinch.android.rtc.internal.natives.jni.UserAgentFactory.<clinit>(UserAgentFactory.java:9)
11-11 17:59:51.576: E/AndroidRuntime(28765): at com.sinch.android.rtc.internal.client.ServiceFactory.createUserAgent(ServiceFactory.java:44)
11-11 17:59:51.576: E/AndroidRuntime(28765): at com.sinch.android.rtc.internal.client.DefaultSinchClient.<init>(DefaultSinchClient.java:157)
11-11 17:59:51.576: E/AndroidRuntime(28765): at com.sinch.android.rtc.internal.client.InternalSinchClientFactory.createSinchClient(InternalSinchClientFactory.java:14)
11-11 17:59:51.576: E/AndroidRuntime(28765): at com.sinch.android.rtc.DefaultSinchClientBuilder.build(DefaultSinchClientBuilder.java:95)
11-11 17:59:51.576: E/AndroidRuntime(28765): at com.andro_yce.dyad.MessageService.startSinchClient(MessageService.java:47)
11-11 17:59:51.576: E/AndroidRuntime(28765): at com.andro_yce.dyad.MessageService.onStartCommand(MessageService.java:37)
11-11 17:59:51.576: E/AndroidRuntime(28765): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2819)
11-11 17:59:51.576: E/AndroidRuntime(28765): at android.app.ActivityThread.access$1900(ActivityThread.java:156)
11-11 17:59:51.576: E/AndroidRuntime(28765): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1437)
11-11 17:59:51.576: E/AndroidRuntime(28765): at android.os.Handler.dispatchMessage(Handler.java:99)
11-11 17:59:51.576: E/AndroidRuntime(28765): at android.os.Looper.loop(Looper.java:153)
11-11 17:59:51.576: E/AndroidRuntime(28765): at android.app.ActivityThread.main(ActivityThread.java:5311)
11-11 17:59:51.576: E/AndroidRuntime(28765): at java.lang.reflect.Method.invokeNative(Native Method)
11-11 17:59:51.576: E/AndroidRuntime(28765): at java.lang.reflect.Method.invoke(Method.java:511)
11-11 17:59:51.576: E/AndroidRuntime(28765): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
11-11 17:59:51.576: E/AndroidRuntime(28765): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
11-11 17:59:51.576: E/AndroidRuntime(28765): at dalvik.system.NativeStart.main(Native Method)
这就是我启动消息服务的方式
` ParseUser currentUser = ParseUser.getCurrentUser();
Intent serviceIntent = new Intent(this, MessageService.class);
if (currentUser != null) {
startService(serviceIntent);
}
showSpinner();
private Intent broadcastIntent = new Intent("com.andro_yce.dyad.SplashActivity");
这是我的消息服务类
package com.andro_yce.dyad;
import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.support.v4.content.LocalBroadcastManager;
import com.parse.ParseUser;
import com.sinch.android.rtc.ClientRegistration;
import com.sinch.android.rtc.Sinch;
import com.sinch.android.rtc.SinchClient;
import com.sinch.android.rtc.SinchClientListener;
import com.sinch.android.rtc.SinchError;
import com.sinch.android.rtc.messaging.MessageClient;
import com.sinch.android.rtc.messaging.MessageClientListener;
import com.sinch.android.rtc.messaging.WritableMessage;
public class MessageService extends Service implements SinchClientListener {
private static final String APP_KEY = "**********";
private static final String APP_SECRET = "==========";
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.andro_yce.dyad.SplashActivity");
@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.setSupportCalling(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();
}
}
}
请帮忙。谢谢
最佳答案
据我所知
无法加载您的库
当尝试调用无法找到其实现的 native 时抛出。 http://developer.android.com/reference/java/lang/UnsatisfiedLinkError.html
请检查此链接 https://stackoverflow.com/a/22121375/1761003
请贴出一些代码以获得更好的回复
关于android - 在真实设备中加载 sinch 库时出现不满意的链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26865367/
我有一个网站,并且我使用 javascript sdk 添加了“点赞”按钮。 这是代码 (function(d, s, id) { var js, fjs = d.g
我知道 HTML 是逐行读取的。当您链接多个 css 文件(如规范化文件和样式表文件)时,由于 CSS 重要性特异性和源顺序,样式表文件应链接在规范化文件之后。看起来这不会影响链接的 JavaScri
我正在使用官方 Bootstrap site 提供的 CDN 链接在我的网络应用程序中使用面板进行测试 在彻底检查我的代码后,面板没有显示。 但是我在 SO 上看到了类似的帖子并且 CDN 链接不同
这里是编码初学者。我正在尝试为我的移动设备网站设置断点,以便我的网站适合小屏幕。我只是想检查如果我缩小视口(viewport)的宽度,背景颜色是否会改变,但没有发生任何变化。也许我只是对一个简单的错误
举一个我想要的例子,想象一下这个字符串: $text = 'lorem ipsum About us lorem ipsum'; 如果此字符串包含一个 href 以 / 开头的 anchor 链接,则
如何链接到 LaTeX 文档的另一部分或子部分?这种链接的常规范式是什么,像[链接名称]那样写,或者像网页超链接那样写? 最佳答案 链接到另一个部分需要您的部分进行一些额外的标记。要使用的命令是: \
我有一个订单表,其中包含订单号、客户 ID 和代理 ID。然后有一个带有 id 的客户表和一个带有 id 的代理表。 我需要获取所有具有来自代理 ID 'a03' 和代理 ID 'a05' 的订单的客
假设我有: dic = {"z":"zv", "a":"av"} ## Why doesn't the following return a sorted list of keys? keys = d
我在尝试链接到外部库时得到了一些奇怪的结果。如果我从命令行运行以下命令: gcc fftwTest.c -I../extlib/fftw-3.3.5-dll32 -L../extlib/fftw-3.
我认为我没有正确理解 jQuery 链接。我正在遍历一个数组并尝试将 div 元素添加到我的包装器 CSS 类中,每个 div 元素都有一个“click”类和自定义 css top 和 left 属性
HTML 使用超级链接与网络上的另一个文档相连。几乎可以在所有的网页中找到链接。点击链接可以从一张页面跳转到另一张页面。 HTML 超链接(链接) HTML使用标签 a 来设置超文本链接。 超链
这个问题在这里已经有了答案: How do I link to part of a page? (hash?) (7 个答案) Scroll Automatically to the Bottom
我想创建一个 Docker Swarm 集群,运行一个 Elasticsearch 实例、一个 MongoDB 实例和一个 grails 应用程序,每个都在单独的机器上。我正在使用 Docker Ma
我正在尝试将 CakePHP HTML Linker 用于以下代码 Add Cuisine 由于 span 标签需要在 a 标签内。我无法根据需要获得输出。关于如何完成它的任何建议? 最佳答案 禁用链
大家好, 我最近开发了一个应用程序,很快就会提交到 App Store。我想免费提交这个应用程序,并想知道我是否可以实现一个带有 PayPal 捐赠标志的按钮,上面基本上写着“捐赠用于开发”或与此相关
我想尝试在 dlang 中使用 libuv。我下载了这样的 dlang 绑定(bind): git clone git@github.com:tamediadigital/libuv.git 现在我接
我有一个节点(节点 a),各种其他节点(节点 b/c/d/e)与之引用。 我可以创建一个带有参数的 View 作为我正在查看的节点(节点 a),并获取引用该节点的节点列表。 基本上在节点 a 查看节点
我正在尝试建立一个常见问题页面,上面有目录,下面有答案。我想点击目录中的一个问题,并在同一页面上链接到相应的答案。我如何在 CakePHP 中使用 $this->Html->link() 执行此操作方
在 WooCommerce 3.0+ 中,我使用 js 创建了一些选项卡,每个选项卡中包含来自不同类别的产品。我已经设法修改了简单产品的添加到购物车链接,其中点击了 addtocart 按钮它进入下一
Delphi 2007/2009 奇怪的问题在这里: 根据设计时定义的组件属性,是否可以在链接中包含文件或保留文件? 示例:如果我将 SomeProperty 保留为真,则在编译时,单元 SomeUn
我是一名优秀的程序员,十分优秀!