私はHeadFirst Android開発のチュートリアルに従っていますが、追加後に問題が発生しました:private ActionBarDrawerToggledrawerToggle;
このコントロールは廃止されたため、com.Android.support:appcompat-v7:26.0.0-alpha1をアプリモジュールに追加して、Stackの指示に従って問題を解決しました
しかし、今では次のビルドエラーが発生しています。
エラー:タスク ':app:processDebugManifest'の実行に失敗しました。
マニフェストの統合に失敗しました:属性meta-data#Android.support.VERSION@value value =(25.3.1)from [com.Android.support:recyclerview-v7:25.3.1] AndroidManifest.xml:24:9-31も[com.Android.support:appcompat-v7:26.0.0-alpha1] AndroidManifest.xml:27:9-38 value =(26.0.0-alpha1)に存在します。提案:オーバーライドするには、AndroidManifest.xml:22:5-24:34の要素に「tools:replace = "Android:value"」を追加します。
コードは次のとおりです。
問題は、同じバージョンとメジャーバージョンのすべてのサポートライブラリがコンパイルSDKバージョンと一致する必要があることです。
そのため、特定のサポートライブラリバージョンを強制するようにしてください。これをアプリモジュールの最後のbuild.gradle
に配置します。
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.Android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '25.3.0'
}
}
}
}
まだ持っていない場合は、最初にこの行をマニフェストタグに追加します。
xmlns:tools="http://schemas.Android.com/tools"
例:
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.winanainc"
Android:versionCode="3"
Android:versionName="1.2"
xmlns:tools="http://schemas.Android.com/tools">
次に、アプリケーション内にこのメタタグを追加して、ビルドツールのバージョンを上書きします。この場合、たとえば、バージョン25.3.1を選択しました
<application>
...
..
<meta-data
tools:replace="Android:value"
Android:name="Android.support.VERSION"
Android:value="25.3.1" />
</application>
すべてのサポートライブラリバージョンを25.3.1に変更し、チャームのように機能しました。
compile 'com.Android.support:appcompat-v7:25.3.1'
compile 'com.Android.support:design:25.3.1'
また、次のパラメーターを25に変更する必要があります。
compileSdkVersion 25
targetSdkVersion 25
<application
Android:allowBackup="true"
Android:icon="@mipmap/ic_launcher"
Android:label="@string/app_name"
Android:largeHeap="true"
Android:supportsRtl="true"
Android:theme="@style/AppTheme"
>
<meta-data
tools:replace="Android:value"
Android:name="Android.support.VERSION"
Android:value="26.0.0" />
</application>
開くAndroid Studio->マニフェストファイルを開く
<uses-sdk tools:overrideLibrary="Android.support.v17.leanback"/>
を追加します。 xmlns:tools="http://schemas.Android.com/tools"
タグの前に、<application>
も含めることを忘れないでください
取り替える
compile 'com.Android.support:recyclerview-v7:+'
によって
compile 'com.Android.support:recyclerview-v7:25.3.1'
そして追加
compile 'com.Android.support:appcompat-v7:25.3.1'
compile 'com.Android.support:design:25.3.1'
Add <meta-data> tag in manifest.xml file as below...
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.demo"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools">
<uses-permission Android:name="Android.permission.INTERNET"/>
<application
Android:name=".MyApplication"
Android:allowBackup="true"
Android:icon="@mipmap/ic_launcher"
Android:label="@string/app_name"
Android:supportsRtl="true"
Android:theme="@style/AppTheme">
<activity
Android:name=".MainActivity"
Android:theme="@style/AppTheme">
<intent-filter>
<action Android:name="Android.intent.action.MAIN"/>
<category Android:name="Android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
**<meta-data
tools:replace="Android:value"
Android:name="Android.support.VERSION"
Android:value="25.3.1" />//this 25.3.1 version should be same which we defined in the build.gradle file. i am using compileSdkVersion 25**
</application>
</manifest>
確実に動作する@ASK ....
このコードは私の問題を解決しました
「問題は、同じバージョンとメジャーバージョンのサポートライブラリはすべて、コンパイルSDKバージョンと一致する必要があるということです。
そのため、特定のサポートライブラリバージョンを強制するようにしてください。 build.gradleのアプリモジュールの最後にこれを配置します。」
ありがとう
@sagar giriによる答えは一時的な回避策です。これを解決するために私がしたことは最後に説明されています。
最新のAndroid Studioに最新のサポートライブラリがインストールされていて、ビルドgradleのアプリモジュールに古いサポートライブラリバージョンがある場合、Androidスタジオはバージョンの不一致により失敗します。
したがって、サポートライブラリのバージョンを最新のものに更新し、アイコンの名前変更などの最新のサポートライブラリの変更を修正して再構築します。
それが役に立てば幸い...