建议:使用 tools:overrideLibrary="android.support.v7.appcompat" 强制使用

Posted

技术标签:

【中文标题】建议:使用 tools:overrideLibrary="android.support.v7.appcompat" 强制使用【英文标题】:Suggestion: use tools:overrideLibrary="android.support.v7.appcompat" to force usage 【发布时间】:2015-09-22 11:22:40 【问题描述】:

我从互联网上购买了应用程序(甲虫游戏)以对其进行编辑.. 但是当我运行应用程序时 这个味精出现在我面前

    Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 1 cannot be smaller than version 9 declared in library /Users/omar/Downloads/BeetleGame1/app/build/intermediates/exploded-aar/com.google.android.gms/play-services/7.5.0/AndroidManifest.xml
    Suggestion: use tools:overrideLibrary="com.google.android.gms.all" to force usage

build.grade(project:beetlegame1)

    // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript 
    repositories 
        jcenter()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:1.2.3'
    


allprojects 
    repositories 
        jcenter()
    

build.grade(module:app)

    apply plugin: 'com.android.application'

android 
    compileSdkVersion 19
    buildToolsVersion "23.0.0 rc2"

    defaultConfig 
        applicationId "com.game"
        compileOptions 
            sourceCompatibility JavaVersion.VERSION_1_5
            targetCompatibility JavaVersion.VERSION_1_5
        
    

    buildTypes 
        release 
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        
    


dependencies 
    compile 'com.google.android.gms:play-services:+'

build.grade(module:google-play-services-lib)

    configurations.create("default")
artifacts.add("default", file('google-play-services_lib.jar'))

我可以附上下载我有的应用游戏的链接..来看看:)

【问题讨论】:

com.google.android.gms:play-services:X.X+需要在最后加上版本号 解决方案:***.com/a/27310430/717267 【参考方案1】:

导入的库 google play services 的 minsdk 指定为 9,而您的目标似乎是低得多的版本。要覆盖它,您需要在 AndroidManifest.xml 文件中添加带有包名的 tools:overrideLibrary,这将忽略指定的库 minSDK 版本。

<?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="your package name">

       <uses-sdk tools:overrideLibrary="com.google.android.gms.all"/>
       --------------------------------
       --------------------------------
 </manifest>

工具:覆盖库标记

一种特殊标记,只能与 uses-sdk 声明一起使用 覆盖导入最低 SDK 版本更新的库 高于该应用程序的最低 SDK 版本。没有这样的标记, 清单合并将失败。标记将允许用户选择 可以导入哪些库而忽略最低 SDK 版本。

【讨论】:

同样的错误,但是当我使用这个代码时 他告诉我把它合并到一个元素中,当我做的时候......(错误:(6, 5) uses-sdk element cannot have a "tools:node" attribute) (Error:(6, 5) Execution failed for task ':app:processDebugManifest'. > Manifest merge failed : uses-sdk element cannot有一个“工具:节点”属性) 但旧错误消失了,而这个新错误:D 只需删除 tools:node="replace" 行..我的回答也已更正 我已经添加了行,但仍然有问题 @Renges 通常插入一个库是不够的,您应该指定一组这样的库,例如 【参考方案2】:
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="22"
    tools:overrideLibrary="
    com.google.android.gms.all,
    com.google.android.gms.ads,
    com.google.android.gms.auth,
    com.google.android.gms.base,
    com.google.android.gms.measurement,
    com.google.android.gms,
    com.google.android.gms.analytics,
    com.google.android.gms.appindexing,
    com.google.android.gms.appinvite,
    com.google.android.gms.appstate,
    com.google.android.gms.cast,
    com.google.android.gms.drive,
    com.google.android.gms.fitness,
    com.google.android.gms.location,
    com.google.android.gms.maps,
    com.google.android.gms.games,
    com.google.android.gms.gcm,
    com.google.android.gms.identity,
    com.google.android.gms.nearby,
    com.google.android.gms.panorama,
    com.google.android.gms.plus,
    com.google.android.gms.safetynet,
    com.google.android.gms.wallet,
    com.google.android.gms.wearable" />

【讨论】:

【参考方案3】:

您收到此错误是因为您没有在 appbuild.gradle 文件中声明 minSdkVersion

 defaultConfig 
    applicationId "com.game"
    minSdkVersion 9
    targetSdkVersion 22
    compileOptions 
        sourceCompatibility JavaVersion.VERSION_1_5
        targetCompatibility JavaVersion.VERSION_1_5
    

【讨论】:

“一个大错误”的描述性不足以帮助您解决任何剩余的问题。我认为这个修复确实 删除了这个问题所问的错误,而是从全新的错误开始?如果是这样,这些似乎更适合提出更多问题。【参考方案4】:

让 minSdkVersion=9 像图片中一样。 为我工作。

【讨论】:

【参考方案5】:

打开 Android Studio -> 打开清单文件

不要忘记在标签之前添加 xmlns:tools="http://schemas.android.com/tools"

<uses-sdk tools:overrideLibrary="com.google.android.gms.all"/>

【讨论】:

【参考方案6】:

在 manifest.xml 中使用此代码

<uses-sdk
    android:minSdkVersion="10"
    android:maxSdkVersion="14"
    tools:overrideLibrary="x"/>

【讨论】:

以上是关于建议:使用 tools:overrideLibrary="android.support.v7.appcompat" 强制使用的主要内容,如果未能解决你的问题,请参考以下文章

需要关于 pthread 同步的建议/建议(结合使用条件变量和屏障)

编写高质量代码改善C#程序的157个建议——建议134:有条件地使用前缀

SQL的开发建议(MySQL和Oracle)

如何使用自动建议创建自定义文本区域?

转载--编写高质量代码:改善Java程序的151个建议(第4章:字符串___建议52~55)

转载--编写高质量代码:改善Java程序的151个建议(第4章:字符串___建议52~55)