我正在尝试访问一些海康威视cctv相机。 我有so文件和jar文件。 当我尝试运行该程序时,它说
Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/idonic.mobileapp.androidhikvision-1/base.apk"],nativeLibraryDirectories=[/data/app/idonic.mobileapp.androidhikvision-1/lib/arm, /data/app/idonic.mobileapp.androidhikvision-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]] couldn't find "libMPCtrl.so"
at java.lang.Runtime.loadLibrary(Runtime.java:367)
at java.lang.System.loadLibrary(System.java:1076)
at org.MediaPlayer.PlayM4.Player.<clinit>(Player.java:775)
at idonic.mobileapp.androidhikvision.PlayBackByTime$LoadingDevicesTask.doInBackground(PlayBackByTime.java:80)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
当我尝试拨打
时发生错误 player = Player.getInstance();
这是我程序的当前结构
错误说它找不到某个文件夹中不是我的项目的路径所以我想我错过了一些东西。 也许我需要声明so文件所在的新文件夹。
这是我的build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "idonic.mobileapp.androidhikvision"
minSdkVersion 10
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags "-frtti -fexceptions"
}
}
ndk {
abiFilters "armeabi", "armeabi-v7a"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
sourceSets {
main {
jniLibs.srcDirs = ['jniLibs']
jni.srcDirs = [] //disable automatic ndk-build
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile files('libs/HCNetSDK.jar')
compile files('libs/PlayerSDK.jar')
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
}
我正在使用android 6 / MIUI8.5.3.0在xiaomi redmi note 4中进行测试。 gradle版本是2.3,android studio是3.0。 我试图在其他设备和Android 5.0设备中加载项目代码工作,我可以看到来自闭路电视摄像机的图像。 其他设备和s7与Android 7.1。 我错过了什么.... 提前谢谢..
答案 0 :(得分:2)
使用最新的Android版本后,我遇到了同样的问题&gt; 25.以下是我如何解决问题。
在app / jniLibs下创建三个文件夹
一个。应用程序/ jniLibs / 86 湾应用程序/ jniLibs / armeabi C。应用程序/ jniLibs / armeabi-V7A
如下图所示 Add folders
在rood文件夹下创建一个gradle.properties文件。右键单击文件夹的根目录,即99% app 文件夹&gt;新文件&gt;将其命名为gradle.properties
粘贴以下行
android.useDeprecatedNdk = true - &gt; gradle.properties
在build.gradle(Module:app)
android{ .... defaultConfig{ ndk { abiFilters "armeabi-v7a", "x86", "armeabi" } .... }