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
成功打包!

你可能感兴趣的:(android)