2015-06-26 3 views
4

Я использую библиотеку leanback для разработки для Android TV. Мое приложение объявить мин API 16, однако Leanback как минимум API до 16 Итак, как сказано в документации я заявил об этом в своем манифесте:Сбой слияния Android Gradle Manifest

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools" 
      package="com.mypackage.package"> 

    <uses-sdk tools:overrideLibrary="android.support.v17.leanback" /> 

Однако я до сих пор ошибка:

Ошибка : (6, 5) Выполнение не выполнено для задачи ': app: processAdhocProdManifest'.

Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 17 declared in library /thepathtotheapp/build/intermediates/exploded-aar/com.android.support/leanback-v17/22.2.0/AndroidManifest.xml Suggestion: use tools:overrideLibrary="android.support.v17.leanback" to force usage

в Manifest докладе о слиянии я вижу:

MERGED from io.fabric.sdk.android:fabric:1.0.2:7:5 
    android:targetSdkVersion 
     INJECTED from AndroidManifest.xml:0:0 
     INJECTED from AndroidManifest.xml:0:0 
    android:minSdkVersion 
     INJECTED from AndroidManifest.xml:0:0 
     INJECTED from AndroidManifest.xml:0:0 
    tools:overrideLibrary 
     ADDED from AndroidManifest.xml:21:15 
    tools:ignore 
     ADDED from com.mixpanel.android:mixpanel-android:4.5.4-RC1:14:9 
application 
ADDED from AndroidManifest.xml:23:5 

Так это выглядит, как это добавление инструментов: overrideLibrary, но он по-прежнему не в состоянии.

Кто-нибудь знает, как это исправить?

+0

Ну, точка, стоящая за инструментами: overrideLibrary', предназначена для того, чтобы вы могли поставить заменяющее значение: http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger # TOC-tools: overrideLibrary-marker Я не вижу, где вы это делаете. – CommonsWare

+0

Он указан в моем файле build.gradle, я удаляю его из файла build.gradle, и я указал: непосредственно в AndroidManifest Но у меня все еще есть одна и та же ошибка. – Andros

+0

Хмммм ... Я еще не использовал 'tools: overrideLibrary', и поэтому я надеялся, что, возможно, поместит значения в' '. Вы можете попробовать переключиться с 'tools: overrideLibrary =" ... "' на 'tools: node =" replace "', который теоретически должен заменить все более низкоприоритетные экземпляры '' вашими. Я использовал 'tools: node =" replace "', но не на ''. – CommonsWare

ответ

5

Вопрос доносился из библиотеки Mixpanel, Mixpanel определить его AndroidManifest с этим тегом:

<uses-sdk 
     android:minSdkVersion="9" 
     android:targetSdkVersion="21" 
     tools:ignore="GradleOverrides" /> 

Так что я в конечном итоге отказ от Mixpanel, я предпочитаю отказаться от них больше, чем 10% наших пользователей.

+1

Имея ту же проблему, но похоже, что у mixpanel есть некоторые обновления, чтобы исправить это? https://github.com/mixpanel/mixpanel-android/releases –

+0

Видимо, да, вы должны обновить и попробовать. Я больше не использую Mixpanel ... – Andros

+0

Я могу подтвердить, что их обновление 4.8.0 фиксировало слияние конфликтов. – vanomart