2017-08-10 53 views
4

在apk中,我使用的是包含本機庫的aar庫。試圖在運行時計算.so文件的MD5校驗和,我注意到它與aar中的.so文件不同。文件的大小也會發生變化:apk中的文件重量減少大約20個字節。有誰知道爲什麼apk生成過程正在修改這種文件?有什麼我可以做的,以保持文件完好?APK的世代正在改變.so文件的大小

它只發生在arm64版本。

+0

是作爲預編譯的二進制文件包含的本地庫,還是由NDK編譯和構建? – rupps

+0

由Gomobile編譯並構建,然後複製到最終的.aar庫中。 – achojoao

回答

0

在我的app/build文件夾中,我看到.so文件也位於中間體/變換/ mergeJniLibs和中間體/變換/ stripDebugSymbol。 mergeJniLibs中.so文件的md5sum與原始.so文件的總和相匹配。 stripDebugSymbol中.so文件的md5sum是不同的。進一步的調查使我這個添加到模塊的的build.gradle的Android的部分(參見:PackagingOptions doNotStrip documentation ):

android { 
    . 
    . 
    packagingOptions { 
     doNotStrip "**/*.so" 
    } 
    . 
} 

經過搖籃同步,清潔和重建的。所以md5sum也在app /構建/輸出/ apk /調試與原始md5sum相匹配。

+0

儘管此鏈接可能會回答問題,但最好在此包含答案的基本部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/19049901) – EJoshuaS

+0

更新爲包含答案文本,而不是指向另一個問題的鏈接。 –