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

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

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

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

Q&A

解決済

1回答

5008閲覧

AndroidStudioから外部ライブラリの利用

hide09090909

総合スコア68

Android Studio

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

0グッド

0クリップ

投稿2016/11/21 05:44

編集2016/11/24 03:50

###前提・実現したいこと
AndroidStudioからライブラリの追加と
利用を行いたいのですが、上手く設定できません。
追加手順は以下の実行手順に示します。

###実行手順
1.pluginを呼び出すプロジェクトをandroidstudioのImport projectから開く
2.AndroidStudioのfile/New/New Module/Import.Jar/AAR Packageを選択し、aarファイルを指定する。
3.AndroidStudioのfile/Project Structoreでライブラリを使用したいモジュールを選択し、Dependenciesを開く
4.画面左下の「+」を押下し、Module Dependencyを選択し、追加したいモジュールを追加する。

###実行結果
私が作成したプロジェクトのディレクトリの中にライブラリは表示されているのですが、以下のエラーが表示されます。
A problem occurred evaluating root project 'Android'
project with path 'ライブラリ名' could not be found in root project 'android'
また、aarを追加直後にbuildをした際はエラーが表示されなかったのですが、その際に生成されるapkファイルを確認すると追加したはずのaarファイルはそんざいしていませんでした。

1.このエラー回避策を教えていただきたいです。
2.aarファイルはapkの中に表示されなかったが、それでよいのか。

上記2つを皆様にお伺いしたいです。
よろしくお願い致します。

<?xml version="1.0" encoding="utf-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.apache.cordova" > </manifest>

App側Manifest.xml

1<?xml version='1.0' encoding='utf-8'?> 2 3<manifest xmlns:tools="http://schemas.android.com/tools" 4 android:hardwareAccelerated="true" android:versionCode="10000" android:versionName="1.0.0" package="com.mse.android.wifimulticast" xmlns:android="http://schemas.android.com/apk/res/android"> 5 <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> 6 <uses-permission android:name="android.permission.INTERNET" /> 7 8 <application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name" android:supportsRtl="true" tools:replace="android:icon,android:label> 9 10 <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize"> 11 12 <intent-filter android:label="@string/launcher_name"> 13 <action android:name="android.intent.action.MAIN" /> 14 <category android:name="android.intent.category.LAUNCHER" /> 15 </intent-filter> 16 17 </activity> 18 </application> 19 20 <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" /> 21 22</manifest> 23

strings.xml

1<?xml version='1.0' encoding='utf-8'?> 2<resources> 3 <string name="app_name">Live</string> 4 <string name="launcher_name">@string/app_name</string> 5 <string name="activity_name">@string/launcher_name</string> 6</resources> 7

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

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

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

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

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

guest

回答1

0

ベストアンサー

build.gradeファイルのdependenciesには追加されてそうですが、
settings.gradeファイルにも追加されてますか?
aarファイルはプロジェクト内のどこかに保存されるはずです。

投稿2016/11/21 07:02

kaji

総合スコア648

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

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

hide09090909

2016/11/21 07:31

ご回答ありがとうございます。 settings.gradeにinclude ":ライブラリ名"を追加記述すると以下のエラーにかわりました。 Error:Execution failed for task ':processDebugManifest'. Manifest merger failed with multiple errors, see logs Manifestファイルのエラーだと考えております。
kaji

2016/11/21 09:10

app側とlibrary側のAndroidManifestが競合してるのかもしれません。 一旦library側のAndroidManifest.xmlのuses-sdkを削除するしてみるとどうなりますか? 参考:http://k16.hatenablog.jp/entry/2014/08/06/171444
hide09090909

2016/11/22 00:25

library側のAndroidManifest.xmlのuses-sdkを削除とxmlns:tools="http://schemas.android.com/tools"の追加を行いましたが、エラー内容に変化は同じエラーが出力されてしまいました。
hide09090909

2016/11/22 01:13 編集

コンソールには以下の文章が表示されています。 Attribute application@icon value=(@drawable/icon) from AndroidManifest.xml:5:53-82 is also present at [android:EwWifiServer:unspecified] AndroidManifest.xml:24:9-45 value=(@drawable/ew_launcher). Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:5:5-12:19 to override. applicationタグの中にtools :replace="android:icon"を記述するとエラーが消えるとインターネットに情報がありましたが、以下のエラーが表示されました。 Error:要素タイプ"application"に関連付けられている属性名"tools"の後には、' = '文字が必要です。
hide09090909

2016/11/22 04:07

tools:replace=”android:icon” を <application> タグに加えるとtoolsがバインドされていませんと表示されます。 toolsとセミコロンに半角スペースを入れるとtoolsの後には'='が必要ですとなります。
kaji

2016/11/22 04:53

<application> タグを消してみるとどうなりますか?
hide09090909

2016/11/22 06:00 編集

失礼しました。先ほどのtools:replace=”android:icon” を <application> タグに加えると以下のエラーになります。 Error:Execution failed for task ':processDebugManifest'. > Manifest merger failed : Attribute application@label value=(@string/app_name) from AndroidManifest.xml:5:83-115 is also present at [android:EwWifiServer:unspecified] AndroidManifest.xml:25:9-46 value=(eMBMS Wifi Middleware). Suggestion: add 'tools:replace="android:label"' to <application> element at AndroidManifest.xml:5:5-13:19 to override. おそらく、'tools:replace="android:labelを<application>に追加しろと言っていると思いますが、すでにtools:replace=”android:icon”を定義済みのため、Error:ネームスペース"http://schemas.android.com/tools"にバインドされた属性"replace"は要素"application"に対してすでに指定されています。というエラーになります。 また、<application> タグを消すと Default Activity not foundと表示されます
kaji

2016/11/22 06:36

> <application> タグを消すと Default Activity not foundと表示されます 言葉足らずでしたが、先程の<application> タグをけしてというのは library側のmanifestです。 app側には通常通り<application> タグがある状態でしょうか?
hide09090909

2016/11/22 07:17

すみません。app側の<application> タグを消していました。 ライブラリ側は<application> タグがそもそもありませんでした。 いま、2つのManifest.xmlを質問欄に記述いたします。
kaji

2016/11/22 09:21

ここの部分かぶってませんか? android:versionName="1.0" android:versionCode="1"> android:versionCode="10000" android:versionName="1.0.0" library側の属性を消してみてはどうでしょうか?
hide09090909

2016/11/24 00:49

library側は現在、 <?xml version="1.0" encoding="utf-8"?> <manifest> </manifest> という記述以外コメントアウトしました。 すると以下のエラーになりました。 Error:Execution failed for task ':CordovaLib:processDebugManifest'. > Manifest merger failed : Main AndroidManifest.xml at AndroidManifest.xml manifest:package attribute is not declared <manifest>タグをコメントアウトするとError:途中でファイルの末尾に達しました。というエラーが表示されます。
hide09090909

2016/11/24 01:28

Error:Execution failed for task ':processDebugManifest'. > Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 17 declared in library [android:war名:unspecified] /Users/ユーザー名/myApp/Live/platforms/android/build/intermediates/exploded-aar/android/libNack5/unspecified/AndroidManifest.xml Suggestion: use tools:overrideLibrary="com.mse.android.nack5application" to force usage というエラーになります。 現状のManifest.xmlを貼ります。
kaji

2016/11/24 01:55

導入しているライブラリの関係から14でなく17にする必要性があるようです。 <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
hide09090909

2016/11/24 02:17 編集

Versionを17に変更しました。 エラー内容が以下になりました。 以前に表示されていたエラーです。 追加で必要な情報をはありますか? Error:Execution failed for task ':processDebugManifest'. > Manifest merger failed with multiple errors, see logs また、例外が発生していました。 IllegalArgumentException: null
kaji

2016/11/24 02:28

IllegalArgumentExceptionは"不正な引数"があるんだと思います。どのクラスの何行目などのエラーログはありませんか?
hide09090909

2016/11/24 02:47

Manifest Sourcesというところに以下のエラーが出力されていました。 Other Manifest Files (Included in merge, but did not contribute any elements) CordovaLib manifest Merging Errors: Error: Attribute application@label value=(@string/app_name) from AndroidManifest.xml:8:83-115 is also present at AndroidManifest.xml:25:9-46 value=(eMBMS Wifi Middleware). Suggestion: add 'tools:replace="android:label"' to <application> element at AndroidManifest.xml:8:5-19:19 to override. android main manifest (this file), line 7 また、イベントログには以下のように出力されていました。 11:47:04 IllegalArgumentException: Multiple entries with same key: android:label=REPLACE and android:label=REPLACE 11:47:12 IllegalArgumentException: Worker exited due to exception: Multiple entries with same key: android:label=REPLACE and android:label=REPLACE 11:47:16 IllegalArgumentException: Multiple entries with same key: android:label=REPLACE and android:label=REPLACE
kaji

2016/11/24 03:27

res/values/strings.xmlにapp_nameは定義されてますか? <?xml version="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools"> <string name="app_name">GNSSampleVideoReward</string> </resources> 後は、エラーログに定義されているとおり、applicationタグ内に tools:replace="android:label" を追加してみてはどうでしょう?
hide09090909

2016/11/24 03:48

applicationタグ内にtools:replace="android:label"追加 res/values/strings.xmlにapp_nameは定義されていました。 この状態でbuildを実行すると以下になりました。現状のManifest.xmlとstrings.xmlを質問欄に記述します。 Error:要素タイプ"application"に関連付けられている属性"tools:replace"の値には、'<'文字を含めることはできません。 Error:A problem occurred configuring root project 'android'. > javax.xml.xpath.XPathExpressionException: org.xml.sax.SAXParseException; lineNumber: 10; columnNumber: 9; 要素タイプ"application"に関連付けられている属性"tools:replace"の値には、'<'文字を含めることはできません。
hide09090909

2016/11/24 04:14

tools:replace="android:icon,android:label>のlabelの後ろに”を付け忘れていたので追加したとこと以下のエラーになりました。 13:13:33 IllegalArgumentException: Multiple entries with same key: tools:icon=REPLACE and android:icon=REPLACE 13:13:44 IllegalArgumentException: Worker exited due to exception: Multiple entries with same key: tools:icon=REPLACE and android:icon=REPLACE Merging Errors: Error: Attribute application@label value=(@string/app_name) from AndroidManifest.xml:8:83-115 is also present at AndroidManifest.xml:25:9-46 value=(eMBMS Wifi Middleware). Suggestion: add 'tools:replace="android:label"' to <application> element at AndroidManifest.xml:8:5-19:19 to override. android main manifest (this file), line 7
kaji

2016/11/24 05:04

android:icon="@drawable/icon" res/drawable/icon にアイコンファイルはありますか? あとは見当違いかもしれませんが、 android:hardwareAccelerated="true" の高速処理が悪さしてるかもしれないので一旦削除してみるとか このメッセージは1つ1つおかしいところがないか確認してみるとか Error: Attribute application@label value=(@string/app_name) from AndroidManifest.xml:8:83-115 8行目の83文字から115文字目を見る is also present at AndroidManifest.xml:25:9-46 value=(eMBMS Wifi Middleware). 25行目の9文字目から46文字目を見る Suggestion: add 'tools:replace="android:label"' to <application> element at AndroidManifest.xml:8:5-19:19 to override. android main manifest (this file), line 7 8行目の5文字目から19文字目を見る 指定場所の属性を一旦消して見たりとか。
hide09090909

2016/11/24 05:16

android:icon="@drawable/icon" res/drawable/iconにアイコンファイルは存在しております。 ご指摘の通りに修正すると以下になります。 Error:Execution failed for task ':processDebugManifest'. > Manifest merger failed with multiple errors, see logs また、applicationタグに tools:replace="android:icon,label"を加えると、以下のエラーになります。 IllegalArgumentException: Worker exited due to exception: Multiple entries with same key: tools:icon=REPLACE and android:icon=REPLACE
kaji

2016/11/24 05:22

tools:replace="android:icon,label" は エラーログの提案にある通り tools:replace="android:label" としてもだめだったのでしょうか?
hide09090909

2016/11/24 05:39

tools:replace="android:label"とすると以下のエラーなります。 Error:Execution failed for task ':processDebugManifest'. > Manifest merger failed : Attribute application@icon value=(@drawable/icon) from AndroidManifest.xml:7:53-82 is also present at [android:EwWifiServer:unspecified] AndroidManifest.xml:24:9-45 value=(@drawable/ew_launcher). Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:7:5-17:19 to override. tools:replace="android:label" tools:replace="android:icon"とすると以下のエラーになるため tools:replace="android:icon,label"のように記述いたしました。 Error:A problem occurred configuring root project 'android'. > javax.xml.xpath.XPathExpressionException: org.xml.sax.SAXParseException; lineNumber: 7; columnNumber: 202; ネームスペース"http://schemas.android.com/tools"にバインドされた属性"replace"は要素"application"に対してすでに指定されています。
kaji

2016/11/24 06:26

ライブラリってEwWifiServerですか? EwWifiServerのAndroidManifest.xmlが表題に追加されたlibraryのAndoirdManifest.xmlではないのでしょうか? EwWifiServerのAndroidManifest.xmlの24行目の9-45文字目って<application>タグに"android:icon="@drawable/ew_launcher"っていう属性があるわけじゃないんですよね? is also present at [android:EwWifiServer:unspecified] AndroidManifest.xml:24:9-45 value=(@drawable/ew_launcher). のログが何を示してるんだろうと思って・・。
hide09090909

2016/11/24 06:27

インターネットに掲載されていた、build.gradleを編集した際にsyncを押下するとあったので、試したところ以下のエラーになりました。 Error:(253, 0) Project with path ':libNack5' could not be found in root project 'android'. <a href="openFile:/Users/m713913/myApp/Live/platforms/android/build.gradle">Open File</a>
hide09090909

2016/11/24 07:01

すみません。凄い勘違いがありました。 私はCordovaを利用して、アプリ開発の勉強をしておりました。 このcordovaを利用した際は、aarファイルの追加手順が通常と異なるようです。 まだ、成功には至っていませんが、一旦この質問を切らせていただきます。 長い間、丁寧にご対応いただき本当にありがとうございました。 同時に貴重なお時間をいただきながら、不明確な質問をしてしまい大変申し訳ございませんでした。
kaji

2016/11/24 07:07

okです^^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問