Android:打release包時遇到的一個花式報錯-ZipException: duplicate entry:xx/xx/xx/xx.class
編譯時日誌大概是這樣的:
還有這樣的:
解決過程:
因為專案在兩週前剛釋出過,所以兩週前的時間節點肯定是可以打正式包的。。。reset之後,一樣的報錯。
那麼肯定是開發環境出了問題咯。。。仔仔細細檢查了一遍本地這兩週之內的改動,沒有任何問題,而且幾個人的開發環境上跑都是一樣的錯。
然後就使用了黑科技stackoverflow,都是說jar包重複,但是那個jar包我真的只引用了一次,而且我沒改程式碼也報錯啊。
然後某同學靈機一動要把jar包移到app下(原來是在一個module下的),然後我就把整個module移到了app下,打包,報錯,這次不是原來那個a.a.a.a了,變成了umeng的a.a.a.d。。。
我好像明白了什麼。
把umeng相關的註釋掉,打包,一切正常。
去umeng官方看更新日誌,上上週剛更新。。。
感覺以前給自己挖了個坑。
雖然友盟的sdk文件上寫著gradle中這樣寫:
compile ‘com.umeng.analytics:analytics:latest.integration’
這個latest真是要命。
最後,專案結構原封不動,只是在gradle中改了umeng的版本。
總結下來就是,如果你的專案在你未引入新庫的情況下某天突然報了個duplicate entry,那麼請檢查一下gradle中有沒有引入的是某些庫的latest版本,latest雖然能讓你保持最新的庫,但是你掌控不了,除非這是你自己寫的庫。其實移動module也是可以試試的,只是程式碼看著就亂一些。
ps:我很想知道,為什麼它不在一開始就報umeng的錯而是報了另外一個三方jar的錯。
相關文章
- 報錯xxxx of undefinedUndefined
- yum安裝xxx包時出錯,提示No package xxx available.PackageAI
- 帝國CMS後臺新增資訊報錯Duplicate entry xx for key PRIMARY
- Maven專案報錯:No bean named 'xxxxxx' availableMavenBeanAI
- beego報錯 table name: `xxx` not existsGo
- nmap報錯: Failed to open device ethxxxAIdev
- CentOS 報錯 java.net.UnknownHostException: xxxxxx: 未知的名稱或服務CentOSJavaException
- Spring:錯誤No bean named 'xxxxxxx' availableSpringBeanAI
- Java程式中使用XXXX-XX-XX XX:XX:XX格式的日期Java
- Check table 169P: entry XXXX does not exist的解決
- QT中error: xxx does not name a type xxx錯誤QTError
- No Bean named 'Xxx' available 異常報錯BeanAI
- MySQL 報錯'Variable 'XXX' is a read only variable'MySql
- js 函式報錯“Uncaught: TypeError xxx is not a function”JS函式ErrorFunction
- Linux下編譯國標GB28181視訊推流元件EasyGBD報錯undefined reference to `xxxxxxxx@GLIBC_xxxxx‘解決Linux編譯元件Undefined
- eclipse :報錯 ‘XXXX‘ does not name a type的解決辦法Eclipse
- ubuntu apt update 提示 The repository ‘http://xxx Release‘ does not have a Release fileUbuntuAPTHTTP
- xxx,一個神奇的 Python 庫Python
- 搭建 docker registry 私有倉庫並解決報錯Get https://xxx.xxx.xxx.xxx:5000/v1/_ping: http: server gave HTTP respDockerHTTPServer
- Idea啟動SpringBoot報錯:程式包xxx 不存在IdeaSpring Boot
- Error querying database. XXXXXXXXXXXXX, No database selected。ErrorDatabase
- C++ vector<std::tuple<XXX, XXX, XXX>>C++
- 關於報錯Error creating bean with name 'xxxxx': Invocation of init method....ErrorBean
- Internal Error with background job scheduling XXXXXXXXXXXXX.Error
- could not connect to redis Instance at xxx.xxx.xxx.xxx:6379Redis
- // @require file://C:xxxxxxxxx.jsUIJS
- g++連結報錯:undefined reference to typeinfo of xxxUndefined
- Error building Player: Win32Exception: ApplicationName=‘xxxxxxxxxxxxxxxxxx//sdk\tools\zipalign.exe' ...ErrorUIWin32ExceptionAPP
- springboot報錯無法讀取配置檔案中的屬性:Could not resolve placeholder ‘xxxx‘ in value “${xxxx}Spring Boot
- 使用req.session.xxx時出現 Cannot set property ‘xxxx‘ of undefinedSessionUndefined
- mysql Incorrect key file for table ‘/xxxxxxxx/xxxx.MYI'; try to repair itMySqlAI
- tomcat-啟動報錯Multiple Contexts have a path of "/xxxx"TomcatContext
- 關於cocopods更新第三方庫報ld: library not found for -lXXXXXX錯誤
- IntelliJ IDEA編譯專案報錯 "xxx包不存在&qIntelliJIdea編譯
- Qt5.7中報錯“xxx dose not name a type”的原因;QT
- PostgreSQL cache lookup failed for type XXXX 錯誤SQLAI
- 【IOS】關於cocopods更新第三方庫報ld: library not found for -lXXXXXX錯誤iOS
- undefine macro xxxxxMac