Process: com.party.jackclientandroid, PID: 1231
java.lang.UnsatisfiedLinkError: No implementation found for void com.tencent.liteav.basic.log.TXCLog.nativeLogInit() (tried Java_com_tencent_liteav_basic_log_TXCLog_nativeLogInit and Java_com_tencent_liteav_basic_log_TXCLog_nativeLogInit__)
at com.tencent.liteav.basic.log.TXCLog.nativeLogInit(Native Method)
at com.tencent.liteav.basic.log.TXCLog.init(TXCLog.java:31)
at com.tencent.rtmp.TXVodPlayer.<init>(TXVodPlayer.java:86)
at com.party.jackclientandroid.ui_home.fragment.ShareFragment$VideoListPagerAdapter.instantiatePlayerInfo(ShareFragment.java:634)
at com.party.jackclientandroid.ui_home.fragment.ShareFragment$VideoListPagerAdapter.instantiateItem(ShareFragment.java:728)
at fr.castorflex.android.verticalviewpager.VerticalViewPager.addNewItem(VerticalViewPager.java:729)
原因 gradle ndk 只能配置 :
ndk {
abiFilters ‘armeabi’, ‘armeabi-v7a’
}
我多配置了一个 //, ‘arm64-v8a’ 所以报错了。
第二坑
莫名其妙的 刻录失败,原因:record video failed 没有原因。
resultcode 是 -5 视频路径获取不到。
原因,腾讯小视频的版本使用的是 6.0 以前的,权限管理比较宽松。
而现在项目使用的是 7.0 以后的所以必须要单独授权。
DialogController.showMenuList(new String[]{"立即拍摄", "本地资源"}, mActivity, (int which) -> {
//视频播刻录之前必须先授权 sdcard 读写权限。
PermissionUtils.checkSDK(mActivity);
switch (which) {
case 0:
startActivity(CommitVideoActivity.class);
break;
case 1:
startActivity(TCVideoChooseActivity.class);
break;
}
});
// 我自己写的一个授权工具类
public class PermissionUtils {
public static void checkSDK(Activity activity) {
int REQUEST_EXTERNAL_STORAGE = 1;
String[] PERMISSIONS_STORAGE = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE};
int permission = ActivityCompat.checkSelfPermission(activity,
Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (permission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE,
REQUEST_EXTERNAL_STORAGE);
}
}
}