6

我使用leanback 库为Android TV 开发。我的应用程序将最小 API 声明为 16,但是将leanback 声明为最小 API 16。因此,正如文档所述,我在清单中声明了这一点:

<?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' 执行失败。

清单合并失败:uses-sdk:minSdkVersion 16 不能小于库 /thepathtotheapp/build/intermediates/exploded-aar/com.android.support/leanback-v17/22.2.0/AndroidManifest.xml 中声明的版本 17 建议:使用tools:overrideLibrary="android.support.v17.leanback" 强制使用

在清单合并报告中,我可以看到:

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

所以看起来它正在添加 tools:overrideLibrary 但它仍然失败。

任何人都知道如何解决这个问题?

4

1 回答 1

7

问题来自 Mixpanel 库,Mixpanel 用这个标签定义了它的 AndroidManifest:

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

所以我最终放弃了 Mixpanel,比起 10% 的用户,我更愿意放弃它们。

于 2015-06-26T01:55:52.277 回答