MediaMetadataRetriever.setDataSource (Native Method) causa RuntimeException: status = 0x80000000

Eu tento obter algumas informações de metadados de arquivo jpg no meu aplicativo android usando android.media.MediaMetadataRetriever. Aqui está o meu código:

public long getDuration(String videoFilePath, Context context) {
    File file = loadVideoFile(videoFilePath);
    if (file == null) {
        return -1;
    }

    MediaMetadataRetriever retriever = new MediaMetadataRetriever();
    file.setReadable(true, false);
    retriever.setDataSource(file.getAbsolutePath());
    return getDurationProperty(retriever);
}

Quando eu chamo o método setDataSource, ele lança o RuntimeException:

09-10 15:22:25.576: D/PowerManagerService(486): releaseWakeLock(419aa2a0): CPU_MIN_NUM , tag=AbsListViewScroll_5.0, flags=0x400
09-10 15:22:26.481: I/HtcModeClient(12704): handler message = 4011
09-10 15:22:26.481: E/HtcModeClient(12704): Check connection and retry 9 times.
09-10 15:22:27.681: W/dalvikvm(13569): threadid=1: thread exiting with uncaught exception (group=0x40bc92d0)
09-10 15:22:27.696: E/AndroidRuntime(13569): FATAL EXCEPTION: main
09-10 15:22:27.696: E/AndroidRuntime(13569): java.lang.RuntimeException: setDataSource failed: status = 0x80000000
09-10 15:22:27.696: E/AndroidRuntime(13569):    at android.media.MediaMetadataRetriever.setDataSource(Native Method)
09-10 15:22:27.696: E/AndroidRuntime(13569):    at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:66)

E estranho é que isso só falha no HTC One X com Android 4.2.2. Aplicativos funciona bem com outros dispositivos que tem outras versões do Android (por exemplo, 4.2.1).

Editar:

Uau. Talvez seja sobre minha dependência errada no maven:

<dependency>
    <groupId>com.google.android</groupId>
    <artifactId>android</artifactId>
    <version>4.1.1.4</version>
    <scope>provided</scope>
</dependency>

Mas eu não consigo encontrar dependência para android 4.2.2. Onde eu posso encontrar isso?

questionAnswers(3)

yourAnswerToTheQuestion