tanersener / mobile-ffmpeg

FFmpeg for Android, iOS and tvOS. Not maintained anymore. Superseded by FFmpegKit.
https://tanersener.github.io/mobile-ffmpeg
GNU General Public License v3.0
3.87k stars 791 forks source link

App is crashed while launching only if it uses -gpl version #298

Closed hwh7 closed 4 years ago

hwh7 commented 4 years ago

Description App is crashed while launching because it couldn't find libcpufeatures.so file only if it uses -gpl version like: implementation 'com.arthenica:mobile-ffmpeg-full-gpl:4.2.2.LTS'

But it's working well if it doesn't use -gpl version like: implementation 'com.arthenica:mobile-ffmpeg-full:4.2.2.LTS'

Logs 2019-12-18 01:48:36.807 4709-4709/com.memorable.onevideo I/mobile-ffmpeg: Loading mobile-ffmpeg. 2019-12-18 01:48:36.811 4709-4709/com.memorable.onevideo D/AndroidRuntime: Shutting down VM 2019-12-18 01:48:36.814 4709-4709/com.memorable.onevideo E/AndroidRuntime: FATAL EXCEPTION: main Process: com.memorable.onevideo, PID: 4709 java.lang.UnsatisfiedLinkError: dlopen failed: library "libcpufeatures.so" not found at java.lang.Runtime.loadLibrary0(Runtime.java:1016) at java.lang.System.loadLibrary(System.java:1657) at com.arthenica.mobileffmpeg.AbiDetect.(AbiDetect.java:40) at com.arthenica.mobileffmpeg.AbiDetect.getNativeAbi(Native Method) at com.arthenica.mobileffmpeg.Config.(Config.java:118) at com.arthenica.mobileffmpeg.Config.setFontDirectory(Config.java:349) at com.memorable.onevideo.ui.home.HomeFragment.onCreateView(HomeFragment.kt:142) at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2439) at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460) at androidx.fragment.app.FragmentManagerImpl.addAddedFragments(FragmentManager.java:2646) at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2416) at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2372) at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273) at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3273) at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3229) at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2466) at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1483) at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784) at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852) at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269) at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3229) at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:201) at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:620) at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:178) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1340) at android.app.Activity.performStart(Activity.java:7200) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2920) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6944) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

Environment

Other It's my build.gradle

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android { compileSdkVersion 28 buildToolsVersion "29.0.2" defaultConfig { applicationId "xxx" minSdkVersion 21 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } debug { splits.abi.enable = false splits.density.enable = false aaptOptions.cruncherEnabled = false ext.alwaysUpdateBuildId = false } } compileOptions { sourceCompatibility 1.8 targetCompatibility 1.8 } }

dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.0.2' implementation 'androidx.core:core-ktx:1.0.2' implementation 'com.google.android.material:material:1.0.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.vectordrawable:vectordrawable:1.0.1' implementation 'androidx.navigation:navigation-fragment:2.0.0' implementation 'androidx.navigation:navigation-ui:2.0.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0' implementation 'androidx.navigation:navigation-fragment-ktx:2.0.0' implementation 'androidx.navigation:navigation-ui-ktx:2.0.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'

implementation 'com.arthenica:mobile-ffmpeg-full-gpl:4.2.2.LTS'

implementation 'com.github.esafirm.android-image-picker:imagepicker:2.1.0'
implementation 'com.github.esafirm.android-image-picker:rximagepicker:2.1.0'
implementation 'com.github.bumptech.glide:glide:4.5.0'

}

tanersener commented 4 years ago

Both packages include libcpufeatures.so inside. So it looks like something is wrong in your application cache. Try to clean your project and build it again.

hwh7 commented 4 years ago

Thanks. This issue is resolved when I flush my whole gradle caches.