天天看點

解決android studio3.2引入vlc3.0.0-1.9.8.aar之後出現AAPT: error: unexpected element uses-sdk

最近把android studio更新到了最新版本3.3.2,然後之前的項目都出現了異常,編譯失敗。

其中絕大部分項目都引用了VLC3.0.0-1.9.8這個aar,我在編譯的過程中發現,隻要添加了這個庫的項目都會報下面這個錯誤

AAPT: error: unexpected element <uses-sdk> found in <manifest><application>.
           

我以為是我項目某個moudle的AndroidManifest.xml檔案寫得有問題,于是把項目中所有子產品的AndroidManifest.xml都檢查了一遍,沒有哪一個子產品有定義<uses-sdk>這個标簽,後來去google了一下,找到了罪魁禍首。

原因是VLC3.0.0-1.9.8.aar的AndroidManifest.xml在Application下定義了<uses-sdk>這個标簽,正常是不可以這樣定義的,導緻合并到APP的manifest檔案後出錯,編譯不通過。

解決android studio3.2引入vlc3.0.0-1.9.8.aar之後出現AAPT: error: unexpected element uses-sdk

找到原因後,就好解決了。

1.aar檔案就是一個自定義的zip檔案,是以将libvlc3.0.0-1.9.8.aar改為libvlc3.0.0-1.9.8.zip;

2.解壓zip檔案,将libvlc中的AndroidManifest.xml打開,删除<uses-sdk>這個标簽并儲存;

3.重新将libvlc的字尾改為aar,即libvlc3.0.0-1.9.8.aar;

4.替換後android studio工程中的libvlc;

5.重新編譯,完美解決。