海康威视萤石demo login的时候报错:
java.lang.UnsatisfiedLinkError: No implementation found for int com.hik.stunclient.StunClient.stunGetNATType
12-21 12:10:41.459 22376-22412/ezviz.ezopensdk E/art: No implementation found for int com.hik.stunclient.StunClient.stunGetNATType(java.lang.String, java.lang.String, short, java.lang.String, short) (tried Java_com_hik_stunclient_StunClient_stunGetNATType and Java_com_hik_stunclient_StunClient_stunGetNATType__Ljava_lang_String_2Ljava_lang_String_2SLjava_lang_String_2S)
12-21 12:10:41.461 22376-22412/ezviz.ezopensdk E/AndroidRuntime: FATAL EXCEPTION: Thread-3276
Process: ezviz.ezopensdk, PID: 22376
java.lang.UnsatisfiedLinkError: No implementation found for int com.hik.stunclient.StunClient.stunGetNATType(java.lang.String, java.lang.String, short, java.lang.String, short) (tried Java_com_hik_stunclient_StunClient_stunGetNATType and Java_com_hik_stunclient_StunClient_stunGetNATType__Ljava_lang_String_2Ljava_lang_String_2SLjava_lang_String_2S)
at com.hik.stunclient.StunClient.stunGetNATType(Native Method)
at com.videogo.main.AppManager.refreshNetInfo(AppManager.java:106)
at com.videogo.openapi.EZOpenSDK$2.run(EZOpenSDK.java:119)
at java.lang.Thread.run(Thread.java:818)
看上去是so文件没有这个方法,其实不是,其实是我的参数弄错了
原因找到了:
我在EZOpenSDK.initLib()这个方法的第三个参数写了,应该是不用写的,直接为空就行了
错误的:
EZOpenSDK.initLib(this, AppKey, "2021eb1287f1a5f8f3f13eca4cc636b0");
正确的:
EZOpenSDK.initLib(this, AppKey, "");
/*
* @ProjectName VideoGoJar
* @Copyright HangZhou Hikvision System Technology Co.,Ltd. All Right Reserved
*
* @FileName EzvizApplication.java
* @Description 这里对文件进行描述
*
* @author chenxingyf1
* @data 2014-7-12
*
* @note 这里写本文件的详细功能描述和注释
* @note 历史记录
*
* @warning 这里写本文件的相关警告
*/
package com.videogo;
import android.app.Application;
import com.videogo.openapi.EZOpenSDK;
/**
* 自定义应用
*
* @author xiaxingsuo
*/
public class EzvizApplication extends Application {
//private String AppKey = "开发者申请的AppKey";
private String AppKey = "c5529c17211845ff977f01de7";
public static EZOpenSDK getOpenSDK() {
return EZOpenSDK.getInstance();
}
@Override
public void onCreate() {
initSDK();
}
private void initSDK() {
/**********国内版本初始化EZOpenSDK**************/
{
/**
* sdk日志开关,正式发布需要设置未false
*/
EZOpenSDK.showSDKLog(false);
/**
* 设置是否支持P2P取流,详见api
*/
EZOpenSDK.enableP2P(true);
/**
* APP_KEY请替换成自己申请的
*/
EZOpenSDK.initLib(this, AppKey, "");
}
}
}