2015-04-14 3 views
1

Я использую FFmpegMediaMetadataRetriever (далее FMMR) в приложении для Android, которое я разрабатываю в Eclipse. Я пытаюсь преобразовать его в проект Maven, и это последняя зависимость, вызывающая проблемы.«Неразрешенный тип» из зависимостей APK в проекте Android с Maven

Maven загружает FMMR правильно, но он не связан с «Maven Dependencies» в Eclipse, и импортирование его в класс дает мне ошибку «Импорт wseemann не может быть разрешен». Другие зависимости работают правильно.

FMMR распространяется как APK; другие - JAR.

Полный POM является:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.github.pconley</groupId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>apk</packaging> 
<artifactId>TestApp</artifactId> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>com.google.android</groupId> 
     <artifactId>android</artifactId> 
     <version>4.1.1.4</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.github.wseemann</groupId> 
     <artifactId>FFmpegMediaMetadataRetriever</artifactId> 
     <version>1.0.0</version> 
     <scope>runtime</scope> 
     <type>apk</type> 
    </dependency> 
</dependencies> 

<build> 
    <finalName>${project.artifactId}</finalName> 
    <sourceDirectory>src</sourceDirectory> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
       <artifactId>android-maven-plugin</artifactId> 
       <version>3.9.0-rc.3</version> 
       <extensions>true</extensions> 
      </plugin> 
     </plugins> 
    </pluginManagement> 

    <plugins> 
     <plugin> 
      <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
      <artifactId>android-maven-plugin</artifactId> 
      <configuration> 
       <sdk> 
        <platform>21</platform> 
       </sdk> 
       <testCoverageFile>/data/data/com.github.pconley.TestApp/cache/test-coverage.ec</testCoverageFile> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

</project> 

Некоторые примечания:

  • Полный, минимальный пример проекта on Github.
  • Я использую m2e и m2e-android.
  • Я импортировал его в Android Studio и добавил зависимость в gradle: та же проблема.
  • Я попытался использовать банку, загруженную в качестве зависимой от системной области: это устраняет ошибки импорта, но не содержит FMMR в скомпилированном проекте.

Я делаю что-то неправильно или был APM FMMR некорректно построен неправильно?

ответ

1

Я исправил проблему упаковки утром, просто добавьте следующую строку в ваш файл модулей build.gradle:

compile 'com.github.wseemann:FFmpegMediaMetadataRetriever:1.0.5

+0

не работает в Maven/Eclipse, который не поддерживает AAR. Впрочем, я должен переместить свой проект в Gradle. – pconley

+0

Я использовал выше упоминание строки в файле build.gradle, но все же покажу мне ошибку для FFmpegMediaMetadataRetriever. Не удается разрешить «FFmpegMediaMetadataRetriever». – Shailesh

+0

Используйте версию 1.0.5: 'compile 'com.github.wseemann: FFmpegMediaMetadataRetriever: 1.0.5' –

Смежные вопросы