1. 程式人生 > >錯誤提示:Suggestion: use tools:overrideLibrary="" to force usage

錯誤提示:Suggestion: use tools:overrideLibrary="" to force usage

異常提示:

應用在Android Studio Build的時候,丟擲瞭如下異常:

Error:Execution failed for task ‘:app:processDebugManifest’.
> Manifest merger failed : uses-sdk:minSdkVersion 8 cannot be smaller than version 9 declared in library [jp.wasabeef:blurry:1.0.0] /Users/xxx/xxx/app/build/intermediates/exploded-aar/jp.wasabeef/blurry/1.0.0/AndroidManifest.xml
Suggestion: use tools:overrideLibrary=”jp.wasabeef.blurry” to force usage

錯誤原因:

出現這個錯誤的原因是我引入的第三方庫最低支援版本高於我的專案的最低支援版本,異常中的資訊顯示:我的專案的最低支援版本為8(Android 2.2),而第三方庫的最低支援版本為9(Android 2.3),所以丟擲了這個異常。

解決辦法:

在AndroidManifest.xml檔案中 標籤中新增<uses-sdk tools:overrideLibrary="xxx.xxx.xxx"/>,其中的xxx.xxx.xxx為第三方庫包名,如果存在多個庫有此異常,則用逗號分割它們,例如:<uses-sdk tools:overrideLibrary="xxx.xxx.aaa, xxx.xxx.bbb"/>

,這樣做是為了專案中的AndroidManifest.xml和第三方庫的AndroidManifest.xml合併時可以忽略最低版本限制。

  如下

AndroidManifest.xml新增: xmlns:tools=http://schemas.android.com/tools

新增後的程式碼如下:

<?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.example.administrator.myapplication"
    tools:overrideLibrary="com.xys.libzxing">
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>

即:

再次編譯專案,即可成功編譯。

 

參考連結:

http://blog.csdn.net/maosidiaoxian/article/details/42671999
http://stackoverflow.com/questions/27095077/how-do-i-use-toolsoverridelibrary-in-a-build-gradle-file
http://blog.csdn.net/b275518834/article/details/45557521