INSTALL_FAILED_MISSING_SHARED_LIBRARY Menyebabkan aplikasi tidak dipasang

Oct 15 2020

Saya mendapatkan kesalahan

More than one file was found with OS independent path 'lib/x86_64/libopencv_java3.so'. If you are using jniLibs and CMake IMPORTED targets, see https://developer.android.com/studio/preview/features#automatic_packaging_of_prebuilt_dependencies_used_by_cmake

tautan membawa saya ke halaman dengan catatan rilis untuk android 4.2, jadi tidak ada alasan untuk masalah saya,

Saya menggunakan pustaka Documentscanner buitl dengan opencv dan yang menggunakan jnilibs dan masalah yang saya miliki adalah dengan jnilibs itu

begitu

Saya melihat-lihat Panduan Pengembang Android dan menemukan ini

Automatic packaging of prebuilt dependencies used by CMake
Prior versions of the Android Gradle Plugin required that you explicitly package any prebuilt libraries used by your CMake external native build by using jniLibs. You may have libraries in the src/main/jniLibs directory of your module, or possibly in some other directory configured in your build.gradle file:

    sourceSets {
        main {
            // The libs directory contains prebuilt libraries that are used by the
            // app's library defined in CMakeLists.txt via an IMPORTED target.
            jniLibs.srcDirs = ['libs']
        }
    }

With Android Gradle Plugin 4.0, the above configuration is no longer necessary and will result in a build failure:

* What went wrong:
Execution failed for task ':app:mergeDebugNativeLibs'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> More than one file was found with OS independent path 'lib/x86/libprebuilt.so'

External native build now automatically packages those libraries, so explicitly packaging the library with jniLibs results in a duplicate. To avoid the build error, move the prebuilt library to a location outside jniLibs or remove the jniLibs configuration from your build.gradle file.

Jadi sekarang setelah mengikuti IE di atas Memindahkan perpustakaan / menghapus dari gradle.build saya dll. Aplikasi membangun dan mulai menginstal tetapi kemudian saya mendapatkan kesalahan

Installation did not succeed.
The application could not be installed: INSTALL_FAILED_MISSING_SHARED_LIBRARY

Bantuan akan sangat dihargai

Jawaban

mayank1513 Oct 28 2020 at 10:47

Silakan ikuti jawaban ini .

Berdasarkan https://developer.android.com/studio/projects/gradle-external-native-builds#jniLibs

Jika Anda menggunakan Android Gradle Plugin 4.0, pindahkan pustaka apa pun yang digunakan oleh target CMake IMPORTED dari direktori jniLibs Anda untuk menghindari kesalahan ini.

Jadi Anda hanya perlu memindahkan folder $ {ANDROID_ABI} /libdlib.so ke tempat lain seperti membuat nama direktori baru cmakeLibs

misalnya:

set_target_properties( dlib
    PROPERTIES IMPORTED_LOCATION
    ${CMAKE_SOURCE_DIR}/../cmakeLibs/${ANDROID_ABI}/libdlib.so )

Lihat - https://developer.android.com/studio/projects/gradle-external-native-builds#jniLibs

RubenMeiring Dec 11 2020 at 13:43

Saya telah menyelesaikan ini dengan mengimpor modul opencv terbaru secara manual, masalahnya adalah bahwa opencv yang disertakan dalam perpustakaan yang saya gunakan sudah usang.

jika Anda mendapatkan kesalahan yang sama (atau saya akan merekomendasikan melakukan ini jika Anda mengalami masalah dengan opencv)

Beginilah cara saya memperbaikinya

Menghapus semua perpustakaan dan modul yang berkaitan dengan kesalahan (Opencv dll)

Kemudian unduh modul android openCV dan impor

kemudian impor pustaka yang menggunakan openCV (Dalam kasus saya itu adalah AndroidScannerDemo oleh jhansireddy di github)

dan terakhir Sesuaikan kode Anda untuk menggunakan perpustakaan yang Anda gunakan