2013-04-19 17 views
9

Ich versuche, ein Live-Hintergrundbild für Android, dass eine MP4-Video auf dem Gerät in Android-Asset (mit dem Beispiel, das ich benutze, es tatsächlich kopiert die Datei auf der SD-Karte zur Laufzeit/keine Rolle spielt)Fehler 1 libavcodec.so Dateiformat nicht erkannt Android GL Live Wallpaper

ich diesen example gefunden und diese post mit konnte ich meine eclipse einrichten mit NDK und den Bau des Projekts zu erhalten. Wenn in Eclipse mit dem NDK-Plugin bauen ich diesen Fehler in meiner Probleme Fenster:

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 

ich den gleichen Fehler, wenn ich versuche, ndk-build von Eingabeaufforderung auszuführen.

Ich habe das Projekt aus dem obigen Link heruntergeladen und dann in Eclipse importiert. Ich fügte den lib GLWallpaperService dem Buildpfad hinzu und stellte sicher, dass mein NDK eingerichtet wurde. Mit dem Wissen, dass der lib-Ordner in libs geändert wurde, habe ich auch versucht, den GLWallpaperService in den libs-Ordner zu verschieben, was nicht geholfen hat.

Das Projekt baut ohne NDK nur gut in Eclipse, aber offensichtlich Fehler beim Versuch, das Hintergrundbild zu starten, weil die nativen Bibliotheken nicht gebaut wurden.

Wie kann ich diesen Fehler beheben?

Antwort

1

Das Problem liegt möglicherweise an einer so beschädigten Datei. Versuchen Sie, die ffmpeg-Bibliothek erneut zu erstellen oder eine andere Version zu finden. Weil ich einen anderen Fehler in Eclipse wenn ich versuche, das Projekt zu kompilieren:

C: /Android/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm -linux-androideabi-Streifen: ./ libs/armeabi/libavcodec.so: Dateiformat nicht

erkannt Und wenn ich für diesen Fehler zu suchen scheint es, wie der Fehler aufgrund einer beschädigten Datei ist: NDK prebuilt shared library file format not recognized

Oder die Bibliothek ist nicht in einem Format, das Android verwenden kann: Error in linking C++ static library with android ndk(Error: file format not recognized)

+0

Sie tatsächlich sehen die gleiche Fehlermeldung ausgeführt werden, können Sie es nur anders filtern. –

+0

Ja, ich habe die gleiche Fehlermeldung, aber Sie haben diesen wichtigen Teil nicht in Ihre Frage aufgenommen. –

+0

Gut, [hier] (http://stackoverflow.com/a/17700708/192373) ist die Antwort. –

2

Das Paket, das Sie von git clone https://github.com/frankandrobot/GLWallpaperVideoDemo.git erhalten, ist Linux-orientiert. Die Datei jni\ffmpeg-android\build\ffmpeg\armeabi\lib\libavcodec.so und viele andere sind einfach symbolische Links zu tatsächlichen Dateien.

Um diese alle Arbeiten leicht unter Windows zu machen, schlage ich zu dem jni\ffmpeg-android\build\ffmpeg\armeabi\lib Ordner zu gehen, und

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