2013-07-22 16 views
5

ライブラリ(Evernote Android-SDK)をAndroidスタジオにインポートしようとしています。私はそれを見つけてダウンロードするためにgradleを取得しました(これはExternal Libraries部分またはProject Explorerに表示されました)。その後、重複したファイルを作成していると私に伝え始めました。Gradle Error - APK AndroidManifest.xmlにコピーされた重複ファイル

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 
apply plugin: 'android' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile 'com.android.support:support-v4:13.0.+' 
    compile 'com.evernote:android-sdk:1.1.+' 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 14 
     targetSdkVersion 16 
    } 
} 

これは、表示されるエラーのセットです。

Gradle: : duplicate files during packaging of APK C:\Users\SSMI\My Projects\AutoNote\AndroidProject\AutoNote\build\apk\AutoNote-debug-unaligned.apk 
Gradle: Execution failed for task ':AutoNote:packageDebug'. 
    > Duplicate files copied in APK AndroidManifest.xml 
    File 1: C:\Users\SSMI\My Projects\AutoNote\AndroidProject\AutoNote\build\libs\AutoNote-debug.ap_ 
    File 2: C:\Users\SSMI\My Projects\AutoNote\AndroidProject\AutoNote\build\libs\AutoNote-debug.ap_ 

ここでの問題は何ですか?どのように修正できますか?

回答
私がしたことは、ライブラリと呼ばれるプロジェクトルートにフォルダを置くことでした。私はevernote sdkライブラリフォルダをその中に移動し、evernoteという名前をつけました。

私はプロジェクトの構造をファイルに書きました。私は警告を無視した。私はモジュールをクリックして+をクリックし、evernoteフォルダを追加しました。私はその後、自分のアプリケーションプロジェクトモジュールを選択し、依存関係タブに行きました。私は+ヒットしました(あなたがAlt + Insertをクリックしなければならない場合があります)、インポートしたモジュール(evernote)を追加しました。

私はそれがソースファイルにインポートするのを忘れてしまったので、それがうまくいかなかったと思っていました。

+0

プロジェクトの構造(ファイル - >プロジェクト構造)を確認してください。どのようにあなたのevernoteのlibはあなたのプロジェクトに含まれていますか?モジュールとして一度追加する必要があります。 – owe

答えて

7

Androidスタジオでmavenを通じてEvernote Android SDKを参照することはできません。この問題は、Androidライブラリを単純なjarファイルとしてパッケージ化できないという事実に起因しています。

Evernoteライブラリは、Android Studio gradleプラグインと互換性のないmaven-android-pluginを使用して構築されました。これは、mavenプラグインがライブラリを再配布するためにapklibフォーマットを使用するのに対して、gradleは新しいaarフォーマットを使用するためです。だから、gradleがEvernoteのAndroidManifestを自分のものとマージして重複してしまうのは難しい。

代わりに、Evernote SDKのソースをクローンし、Androidスタジオに手動でインポートし、その方法で参照する必要があります。 Intellijでこれを行うためのreadme includes instructionsは、Android Studioと同じである必要があります。

+0

ありがとうございました。私は今それを働かせました。私がやろうとしていたように、最新のバージョンを手に入れるのにgradleを使うことができないのは本当に残念です。それは私がそれを持っていたように働くことができるはずです。 – SSMI

+0

私はそれが働いていると思った。それで、それはそれがフィンをコンパイルしたが、アンドロイドスタジオはまだ私がevernote APIの部分を参照する行にエラーを表示していると言います。コード補完が正しく機能するように別のステップがありますか? – SSMI

+0

ありません。グラデルファイルを変更した場合は、Android Studioプロジェクトで再同期することができます。http://stackoverflow.com/a/17098412/108 – Greg

0

私は同じエラーがありました。両方のjarファイルに同じ名前のファイルがあることが原因です。私の場合は、両方のファイルのルートディレクトリに "about.html"という名前のファイルがありました。ファイルの名前を変更した後、すべてが機能しました。

-1

Manifest.xmlファイルを含むライブラリjarを追加しました jarの名前をzipに変更できます。次に、zipを展開してManifest.xmlファイルを削除します。 その後、フォルダを圧縮して再度圧縮することができます。最後に、型をjarに変更します。

関連する問題