1. 程式人生 > >android使用java的Base64加密產生的問題

android使用java的Base64加密產生的問題

作者:燕歆波

描述:由於公司需要使用加密,使用的是java org.apache.commons.codec.binary.Base64來進行加密,由於是在已有程式碼上進行功能的增加,所以沒有過分改動,可是還是出現了問題:

1.時有時無的編譯報錯, 2.gradlew命令列打包報錯: Execution failed for task ‘:app:transformClassesWithDexForFangyuanRelease’.

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Error while executing java process with main class com.android.dx.command.Main wi th arguments {–dex –num-threads=4 –multi-dex –main-dex-list C:\fanhua-project-android\chatAndroidBox\app\build\intermediates\multi-dex\fangyuan\release\maindexlist.txt –output C:\fanhua-project-android\chatAndroidBox\app\build\intermediates\transforms\dex\fangyuan\rele ase\0 –min-sdk-version 15 C:\fanhua-project-android\chatAndroidBox\app\build\intermediates\transforms\jarMerging\fangyuan\release\0.jar}

看到這個錯誤,真是頭大,看不清所以然,經過一下午的測試修改,依然沒有成效,於是又要了一份最原始的程式碼,gradlew命令竟然打包成功,我的天啊,我到底對程式碼做了什麼,昨天晚上搞到九點半回去,一路上都很迷茫,早上來了依然思考這個問題,可能是一夜的休息,早上來了之後,突然想起了加密的問題,於是換了另一個庫來實現Base64加密: implementation group: ‘org.apache.tomcat.embed’, name: ‘tomcat-embed-core’, version: ‘8.5.23’ 然後執行:gradlew assembleFangyuanRelease -Pandroid.useDexArchive=false –daemon –configure-on-demand 依然打包失敗,oh myGod,在原始程式碼上試用,發現一旦加了java的Base64就會報錯,所以只能用Android本身的Base64來加密了,經過一番修改,替換了java的加密,驗證成功了,在使用android自帶的加密時一定要注意falg是預設的:android.util.Base64.decode(encodingAesKey+”=”, android.util.Base64.DEFAULT); 最後執行:gradlew assembleFangyuanRelease -Pandroid.useDexArchive=false –daemon –configure-on-demand 成功打包!