Kesalahan pembuatan Proyek Eclipse Android-NDK

Saya memiliki proyek Android dengan kode asli. Ketika saya melakukan pembayaran dari repo saya dan membuat versi bersih, versi tersebut dibuat dengan baik dan mulai di perangkat, tetapi setelah saya menjalankan perintah project->clean gerhana saya mendapat kesalahan:

...
Install        : libgnustl_shared.so => libs/armeabi/libgnustl_shared.so

D:/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi-strip: unable to rename './libs/armeabi/libgnustl_shared.so'; reason: File exists
make: *** [libs/armeabi/libgnustl_shared.so] Error 1
make: *** Deleting file `libs/armeabi/libgnustl_shared.so'

**** Build Finished ****

Kesalahan ini dapat direproduksi di konsol Cygwin dengan output yang sama (Ya, saya bekerja di MS Windows Vista).

Saya mendapatkan kesalahan yang sama ketika saya menginisialisasi proyek. Dan itu diselesaikan dengan memasukkan file libgnustl_shared.so ke obj/local/armeabi/libgnustl_shared.so dan mengatur hak 777 untuk semua file proyek melalui konsol cygwin yang berjalan di bawah administrator. Tapi sekarang ini tidak membantu.

Anda dapat menemukan proyek saya di github https://github.com/aboritskiy/pacman
I belum menyiapkan lisensi proyek apa pun, dan saya harap saya tidak melanggar lisensi proyek lainnya dengan proyek pendidikan ini.

Fungsionalitas yang mendukung JNI ada di cabang jni-powered.

EDIT: Sepertinya saya memasukkan libgnustl_shared.so dengan cara yang salah.


person Anton Boritskiy    schedule 25.11.2012    source sumber


Jawaban (3)


Anda memiliki https://github.com/aboritskiy/pacman/blob/jni-powered/libs/armeabi/libgnustl_shared.so di repositori Anda, tetapi NDK berpendapat bahwa repositori tersebut harus dibuat selama pembuatan.

person Alex Cohn    schedule 25.11.2012
comment
Hmm, oke! Dimana kesalahan konfigurasinya? - person Anton Boritskiy; 25.11.2012
comment
File ini tidak boleh menjadi bagian dari kontrol versi Anda. - person Alex Cohn; 25.11.2012
comment
Ini bukan masalah kontrol versi, karena meskipun saya menghapus ./obj dan ./libs dari proyek, ia masih dapat dikompilasi dengan kesalahan yang sama. - person Anton Boritskiy; 25.11.2012
comment
Sungguh aneh bahwa proyek dapat dikompilasi dengan sukses dari waktu ke waktu, karena ada beberapa masalah waktu selama file IO. - person Anton Boritskiy; 26.11.2012
comment
coba skenario ini: lakukan checkout bersih, hapus ./libs dan ./obj, bangun proyek, seharusnya sudah baik di versi terakhir, lalu buat lagi dan di sini kesalahan akan muncul. Saya memiliki versi NDK yang sama - person Anton Boritskiy; 26.11.2012
comment
Mungkin kesalahannya adalah Anda menetapkan ./obj dan ./libs sebagai jalur keluaran di Eclipse. Saya belum pernah menyentuh pengaturan ini untuk proyek NDK. Efek dari pengaturan ini tampaknya Eclipse dapat menghapus folder ini saat membersihkan proyek. Tidak jelas bagaimana scrub ini disinkronkan dengan ndk-build yang, dalam istilah Eclipse, menggunakan makefile eksternal. Harap verifikasi apakah masalah Anda dapat direproduksi dari baris perintah Windows (cd pacman-jni-powered dan ndk-build). - person Alex Cohn; 26.11.2012
comment
Agak bodoh tapi masalahnya tidak muncul lagi... Saya hanya mengedit Android.mk, saya menambahkan baris LOCAL_C_INCLUDES := sources/cxx-stl/gnu-libstdc++/include/. Dan itu sudah dilakukan kemarin dan tidak ada efek apa pun, mungkin memulai kembali gerhana menyebabkan efek ini... - person Anton Boritskiy; 26.11.2012
comment
Memulai ulang Eclipse seharusnya menjadi hal pertama yang dicoba! - person Alex Cohn; 27.11.2012
comment
Alex, maukah Anda jika saya menerima jawaban yang diringkas? Atau ubah jawaban Anda sendiri, agar saya bisa menerimanya. - person Anton Boritskiy; 27.11.2012
comment
Saya yakin Anda salah: ndk-build memang menjaga LOCAL_C_INCLUDES untuk saya. Saya akan memeriksa dan memposting balasan terperinci. - person Alex Cohn; 27.11.2012

Saya mengamati masalah ini ketika saya menginstal Tortoise Git dan TGitCache.exe berjalan di latar belakang, dan juga kode yang saya buat adalah kode repositori.

Coba matikan TGitCache.exe di pengelola tugas dan buat ulang.

person Suman    schedule 22.07.2014

Ringkasan:

Saya ingin menambahkan libgnustl_shared.so ke proyek. Saya menggunakan Eclipse dengan plugin Android Developer Tools dan plugin Android Native Developer Tools. Tapi saya punya kesalahan kompilasi, kesalahan ini dapat direproduksi melalui gerhana dan melalui konsol Cygwin.

Masalahnya adalah kesalahan konfigurasi Android.mk: untuk memasukkan libgnustl_shared.so saya harus menambahkan

  1. LOCAL_C_INCLUDES := sources/cxx-stl/gnu-libstdc++/include/ to Android.mk,

  2. APP_STL := gnustl_shared ke berkas Application.mk.

Tapi awalnya saya hanya punya pilihan kedua.

Terima kasih banyak kepada Alex Cohn atas saran yang berguna selama proses debug ini.

person Anton Boritskiy    schedule 27.11.2012
comment
Ini sudah final: dengan r8b, Anda tidak perlu menyetel LOCAL_C_INCLUDES secara manual untuk menunjuk ke direktori libstd include yang sesuai. Anda mempunyai kesalahan lain dalam file Android.mk Anda yang, jika Anda kurang beruntung, dapat menyebabkan banyak masalah: Anda tidak memerlukan -L$(SYSROOT)/usr/lib di LOCAL_LDLIBS Anda. ndk-build akan menambahkan semua jalur perpustakaan yang diperlukan berdasarkan platform, APP_STL, dan parameter lainnya. - person Alex Cohn; 28.11.2012