天天看點

Linux use apktool problem

Linux伺服器線上打包遇到的問題

  • 線上打包的流程
  • 遇到奇怪的BUG(Linux apktool 包體變大)

1. 線上打包的流程

首先我們需要根據線上打包自動關聯落地頁,同時落地頁也是動态生成可選的。

文章目錄

      • 1.1 UML 圖:
    • 2. 遇到奇怪的BUG
      • 2.1 環境問題:首次運作會報錯 `GLIBC_2.14' not found 。
      • 2.2 包體增加變大的問題

序列圖:

User Server 腳本 CID--------------------CNAME 隊列處理 URL--------------------CURL User Server 腳本

流程圖:

Created with Raphaël 2.2.0 開始 打包、落地頁 确認 結束 yes no

2.1 環境問題:首次運作會報錯 `GLIBC_2.14’ not found 。

注意:雖然伺服器是Linux,但是底層GLIC是未安全的,針對這個問題是需要單獨安裝這個C/C++的庫,不然會出現打包時報錯 `GLIBC_2.14’ not found。
/lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./libz.so.1)
      

檢視系統glibc支援的版本,一般是版本過低或者沒有安裝:

[root@djy bin]# rpm -qa|grep glibc
glibc-common-2.12-1.149.el6.x86_64
glibc-headers-2.12-1.149.el6.x86_64
glibc-2.12-1.149.el6.x86_64
glibc-devel-2.12-1.149.el6.x86_64
      

安裝:

//注意:configure時需要修改環境變量LD_LIBRARY_PATH,目前build目錄不能在LD_LIBRARY_PATH中。
[root@djyopt]# wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
[root@djy opt]# tar -xf glibc-2.14.tar.gz
[root@djy opt]# cd glibc-2.14
[root@djy glibc-2.14]# mkdir build
[root@djy glibc-2.14]# cd build
[root@djy build]# ../configure --prefix=/home/dyc/install/glibc
[root@djy build]# make -j4
[root@djy build]# make install
      

修改環境變量,增加glibc/lib目錄:

export LD_LIBRARY_PATH=.:$QTDIR/lib:$PIEV4_SDK_LIB:/home/djy/install/glibc/lib
      

某個遊戲的包線上上處理時,遊戲包體會從40M變成80M。打包流程的腳本是肯定沒問題的,測試都通過了,那麼就隻有幾種情況。

  • 環境問題:Linux伺服器C/C++底層庫的問題
  • 遊戲母包的問題
  • jar包引起的腳本問題

那做了以下幾點嘗試:

  • 伺服器線上打包,Win系統也跟着打包,對比。
  • 另外一台伺服器可以,對比伺服器環境。
  • 伺服器反編譯和WIN系統反編譯大小對比。
  • 腳本問題
  • 依賴的jar問題

解決方案: 經過幾個小時,發現了是 jar的 2.1.3 問題,替換最新的 2.3.2 即可。

Linux use apktool problem

繼續閱讀