java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader
java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader
我尝试实现 Android-FFmpeg-Images-Video android studio 项目示例
参考 link。
当我尝试 运行 android 应用程序时,这里会报错
java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime. IncrementalClassLoader$DelegateClassLoader nativeLibraryDirectories=[/data/data/com.catcry.ffmpeg/lib, /vendor/lib,/system/lib]]] couldn't find "libffmpeg-jni.so"
static {
System.loadLibrary("ffmpeg");
System.loadLibrary("ffmpeg-jni");
}
这是我的build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
applicationId "com.example.ffmpeg"
minSdkVersion 14
targetSdkVersion 23
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
sourceSets {
main {
res.srcDirs = ['src/main/res']
jniLibs.srcDirs = ['src/main/jniLibs']
jni.srcDirs = [] // This prevents the auto generation of Android.mk
}
}
}
dependencies {
compile 'com.android.support:support-v4:23.0.0'
compile project(':ffmpeg4android_os')
compile 'com.android.support:multidex:1.0.1'
}
这是我的目录结构
UnsatisfiedLinkError 是由于您的 android 项目中缺少 libffmpeg-jni.so 文件。请尝试正确的库。
只需从 Setting/Preferences -> Build,Execution,Deployment -> Instant 运行 关闭 instant-运行
并取消选中前两个复选框。这个错误是因为 instant-运行 特性。
您的代码
sourceSets {
main {
res.srcDirs = ['src/main/res']
jni.srcDirs = [] // This prevents the auto generation of Android.mk
}
}
与您的文件夹结构不符。
将 'jniLibs' 放在 'src/main' 文件夹下。
您可以查看此 SO post 了解文件夹结构。
我遇到了同样的问题。我通过创建如下图所示的文件夹结构来解决它。
将您的 .so
个文件复制到 armeabi-v7a
。
这是android视图>
我尝试实现 Android-FFmpeg-Images-Video android studio 项目示例 参考 link。
当我尝试 运行 android 应用程序时,这里会报错
java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime. IncrementalClassLoader$DelegateClassLoader nativeLibraryDirectories=[/data/data/com.catcry.ffmpeg/lib, /vendor/lib,/system/lib]]] couldn't find "libffmpeg-jni.so"
static {
System.loadLibrary("ffmpeg");
System.loadLibrary("ffmpeg-jni");
}
这是我的build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
applicationId "com.example.ffmpeg"
minSdkVersion 14
targetSdkVersion 23
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
sourceSets {
main {
res.srcDirs = ['src/main/res']
jniLibs.srcDirs = ['src/main/jniLibs']
jni.srcDirs = [] // This prevents the auto generation of Android.mk
}
}
}
dependencies {
compile 'com.android.support:support-v4:23.0.0'
compile project(':ffmpeg4android_os')
compile 'com.android.support:multidex:1.0.1'
}
这是我的目录结构
UnsatisfiedLinkError 是由于您的 android 项目中缺少 libffmpeg-jni.so 文件。请尝试正确的库。
只需从 Setting/Preferences -> Build,Execution,Deployment -> Instant 运行 关闭 instant-运行 并取消选中前两个复选框。这个错误是因为 instant-运行 特性。
您的代码
sourceSets {
main {
res.srcDirs = ['src/main/res']
jni.srcDirs = [] // This prevents the auto generation of Android.mk
}
}
与您的文件夹结构不符。 将 'jniLibs' 放在 'src/main' 文件夹下。
您可以查看此 SO post 了解文件夹结构。
我遇到了同样的问题。我通过创建如下图所示的文件夹结构来解决它。
将您的 .so
个文件复制到 armeabi-v7a
。
这是android视图>