经过大量的反复试验后,我设法让所有程序都工作,除非是来加载库。该库位于JNI文件夹中。有人可以帮我解决这个错误吗?
02-11 21:38:32.940 26771-26771/com.example.untitled E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.untitled, PID: 26771
java.lang.UnsatisfiedLinkError: Couldn't load nativetester-jni from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.untitled-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.untitled-2, /vendor/lib, /system/lib]]]: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:358)
at java.lang.System.loadLibrary(System.java:526)
at com.example.untitled.NativeTester.<clinit>(NativeTester.java:23)
at com.example.untitled.FFmpegPlayer.<clinit>(FFmpegPlayer.java:184)
at com.example.untitled.VideoActivity.onCreate(VideoActivity.java:134)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2265)
at android.app.ActivityThread.access$800(ActivityThread.java:145)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5081)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:1)
库不应该在JNI文件夹中,只能在您的源文件夹中。实际的库应该在libs/armeabi
中,并且应该在您的案例libnativetester-jni.so
答案 1 :(得分:0)
[有关更清晰的说明,请查看图片:1
试试这个:
在build.gradle中添加以下内容(module:app)
ndk {
moduleName“nativetester-jni”
}
答案 2 :(得分:0)
以下链接是一个完美的演示版。 http://androidwarzone.blogspot.in/2011/12/ffmpeg4android.html 请按照上述链接中提到的步骤进行操作。 因为我已经通过使用上面的链接合并图像来实现视频压缩和制作视频。 希望它会帮助你。