質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

2回答

905閲覧

[Android Studio]Execute transformにおけるError while merging dex archives

Zodiarc

総合スコア19

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2018/09/13 00:34

編集2018/09/13 08:40

何度も何度も申し訳ありませんAndroid開発初心者です

Androidにて開発を行っております。
LocationManagerからFusedLocationProviderClientのAPIに変更をしようとしております。
build.gradleで下記の追加を行いまして、ビルドをしたところエラーとなりました。

com.google.android.gms:play-services-location:15.0.1

エラー箇所が多くいまいちどこが根本のエラーなのか分からず困っております。
エラー内容を調べてみるとライブラリの競合があると検索結果に多く出ておりますが、どの箇所だか特定できておりません。

下記に一通りのエラー内容を記載してきますので
分かる方がおりましたらご回答いただければ幸いです。
最下部にbuild.gradleを乗せておきます。
Eclipseからの移行なのでbuild.gradleは一つになっております。

Execute transform

java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:(自分の開発環境下のbuild\intermediates\transforms\dexBuilder\debug\0.jar~41.jarまで)

java comppiler

Caused

1Caused by: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:(自分の開発環境下のbuild\intermediates\transforms\dexBuilder\debug\0.jar~41.jarまで) 2 3Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete 4 5Caused by: com.android.tools.r8.utils.AbortException

Android issues

Program type already present: android.support.v4.app.BackStackState$1 Message{kind=ERROR, text=Program type already present: android.support.v4.app.BackStackState$1, sources=[Unknown source file], tool name=Optional.of(D8)}

build.gradle

buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.4' } } apply plugin: 'com.android.application' dependencies { implementation fileTree(include: '*.jar', dir: 'libs') implementation 'com.google.android.gms:play-services-location:15.0.1' } allprojects { gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } } } android { compileSdkVersion 26 buildToolsVersion '27.0.3' useLibrary 'org.apache.http.legacy' sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } // Move the tests to tests/java, tests/res, etc... androidTest.setRoot('tests') // Move the build types to build-types/<type> // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... // This moves them out of them default location under src/<type>/... which would // conflict with src/ being used by the main source set. // Adding new build types or product flavors should be accompanied // by a similar customization. debug.setRoot('build-types/debug') release.setRoot('build-types/release') } defaultConfig { minSdkVersion 24 targetSdkVersion 26 } productFlavors { } repositories { google() } }

ライブラリ依存関係

文字数の関係で画像になってしまっております。(一部抜粋です。)
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

keicha_hrs

2018/09/13 04:11

Android Studioでプロジェクトを作成すると、「appというモジュール(サブプロジェクト)を1つ持つプロジェクト」が作成され、プロジェクト全体の共通ルールを記述するbuild.gradleと、モジュールごとのルールを記述するbuild.gradle(デフォルトならapp/build.gradle)が用意されます。しかし、この質問でご提示いただいているのは「1つのbuild.gradle」であり、内容を見ると共通・モジュールの両方に向けた記述が混在しているように思います。これは、「モジュールを持たず、build.gradleも1つしかないプロジェクト」を構成されているのでしょうか?(そういうことが可能なのかわからないが)
Zodiarc

2018/09/13 04:42

Eclipseからプロジェクト構成を変えずに移行したものでして一つに集約しております。
kakajika

2018/09/13 15:50

libsの中になにかライブラリが入ってたりしますか?
Zodiarc

2018/09/13 23:23

libsの中には"android-support-v4.jar"が入っております。
guest

回答2

0

ベストアンサー

libsの中にあるsupport-v4ライブラリと、gradle側で依存関係により追加されたsupport-v4ライブラリのバージョンが異なるために、衝突が起きているのだと思います。以下のどちらかの方法で回避できると思いますので試してみてください。

1. モジュールの依存関係を除外する

play-services-locationの依存関係を定義しているところの記述を、以下のように変更してください。これによりsupport-v4への依存関係を除外できるので、衝突が起こらなくなると思います。(ただし、play-services-locationがsupport-v4内の新しい機能を利用している場合、古いsupport-v4だとうまく動作しない可能性があります)

gradle

1implementation('com.google.android.gms:play-services-location:15.0.1') { 2 exclude group: 'com.android.support', module: 'support-v4' 3}

2. libs内のsupport-v4は削除し、新しいものを使う

libs内のsupport-v4ライブラリを削除してしまって、gradle側の依存関係により追加されたsupport-v4を利用するようにします。こちらの場合はsupport-v4のバージョンが変わりますので、ある程度プログラム側の調整も必要になるかもしれません。

投稿2018/09/14 00:15

kakajika

総合スコア3131

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zodiarc

2018/09/14 00:32

回答ありがとうございます! 1.の方法でビルドエラーがなくなりました。 何度も適切な回答ありがとうございます。 私ももっと勉強して貴方のような技術者になりたいと思います。 ありがとうございました。
Zodiarc

2018/09/14 00:37

2.の方法でも問題なかったので新しい方を使おうと思います。 ありがとうございました。
kakajika

2018/09/15 04:24

解決されたなら何よりです。 勉強、がんばってください。
guest

0

gradle

1android { 2 // 中略 3 repositories { 4 google() 5 jcenter() // これが無いから・・・? 6 } 7}

・・・でしょうか?

投稿2018/09/13 14:22

keicha_hrs

総合スコア6768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zodiarc

2018/09/13 23:37

回答ありがとうございます。 確認してみましたが同じエラーのままでした。 回答していただいたのに申し訳ありません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問