Mobile-ffmpeg: App is crashed while launching only if it uses -gpl version

Created on 17 Dec 2019  路  2Comments  路  Source: tanersener/mobile-ffmpeg

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

  • Platform: Android
  • Architecture: Tested on Galaxy S7

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'

}

question

All 2 comments

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.

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

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ZedZeal picture ZedZeal  路  6Comments

dnhyde picture dnhyde  路  5Comments

usmanrana07 picture usmanrana07  路  5Comments

brainstormapps picture brainstormapps  路  7Comments

rabelhmd picture rabelhmd  路  7Comments