2013-04-19 23 views
9

Próbuję zrobić animowaną tapetę dla Androida, która odtwarza wideo w .mp4 znajdujące się na urządzeniu w zasobach Androida (w przykładzie, którego używam, to faktycznie kopiuje plik do sdcard na starcie/nie ma znaczenia)Błąd 1 libavcodec.so Format pliku nierozpoznany Android GL Live Wallpaper

Znalazłem example i stosując tę ​​post udało mi się dostać mój zaćmienie skonfigurować z NDK i budowania projektu. Przy budowie w Eclipse za pomocą wtyczki NDK otrzymuję ten błąd w moim oknem problemy:

Description Resource Path Location Type 
make: *** [libs/armeabi/libavcodec.so] Error 1 GLWallpaperVideoDemo-master   C/C++ Problem 
make: *** Deleting file `libs/armeabi/libavcodec.so' GLWallpaperVideoDemo-master   C/C++ Problem 

uzyskać ten sam błąd, gdy próbuję uruchomić ndk-build z wiersza polecenia.

Pobrałem projekt z powyższego linku, a następnie zaimportowałem do zaćmienia. Dodałem lib GLWallpaperService do ścieżki budowania i upewniłem się, że mój NDK został skonfigurowany. Wiedząc, że folder lib zmienił się na libs, spróbowałem przenieść usługę GLWallpaperService do folderu libs, co nie pomogło.

Projekt jest budowany bez pakietu NDK, ale w oczywisty sposób przy błędzie podczas próby uruchomienia tapety, ponieważ biblioteki natywne nie zostały zbudowane.

Jak mogę rozwiązać ten błąd?

Odpowiedz

1

Problem może wynikać z uszkodzonego pliku. Spróbuj ponownie zbudować bibliotekę ffmpeg lub znajdź inną wersję. Bo mam inny błąd w Eclipse przy próbie kompilacji projektu:

C: /Android/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm -linux-androideabi-strip: ./ libs/armeabi/libavcodec.so: Format pliku nie jest rozpoznawany

I kiedy szukać tego błędu wydaje się, że błąd jest z powodu uszkodzonego pliku: NDK prebuilt shared library file format not recognized

Albo biblioteka nie ma formatu, którego może używać Android: Error in linking C++ static library with android ndk(Error: file format not recognized)

+0

rzeczywiście pojawia się ten sam komunikat o błędzie, to tylko czasowe to inaczej. –

+0

Tak Mam ten sam komunikat o błędzie, ale nie uwzględniłeś tej ważnej części w swoim pytaniu. –

+0

Dobrze, [tutaj] (http://stackoverflow.com/a/17700708/192373) jest odpowiedzią. –

2

Pakiet otrzymany przez git clone https://github.com/frankandrobot/GLWallpaperVideoDemo.git jest zorientowany na system Linux. Plik jni\ffmpeg-android\build\ffmpeg\armeabi\lib\libavcodec.so i wiele innych to po prostu dowiązania symboliczne do rzeczywistych plików.

Aby to wszystko łatwo pracować w systemie Windows, sugeruję, aby przejść do folderu jni\ffmpeg-android\build\ffmpeg\armeabi\lib i uruchom

del *.so 
copy libavcodec.so.52.99.1 libavcodec.so 
copy libavcore.so.0.16.0 libavcore.so 
copy libavdevice.so.52.2.2 libavdevice.so 
copy libavfilter.so.1.69.0 libavfilter.so 
copy libavformat.so.52.88.0 libavformat.so 
copy libavutil.so.50.34.0 libavutil.so 
copy libswscale.so.0.12.0 libswscale.so