最近在做一款二次元武俠風的moba手遊,這是第二款手遊專案,第一款胎死腹中,比較鬱悶。
這款專案引入了自己的c++動態庫,所以引申出了安卓打包的一系列找不到庫的問題。
由於之前沒有經驗,所以糾結了一天多方才搞定,現記錄一下過程,聊以自省。
首先明確下,在windows下unity引入c++的庫當然必須是dll,而安卓下則需要引入so庫,
那麼so庫的分類就包括了x86平台和arm平台,手機當然要便一處arm平台的so庫方才可以呼叫。
由於一直在linux下開發,所以不熟悉eclipse等ide,自然編一起來超級費勁。所以網上查詢資料,
最終使用android-cmake在linux下編譯。
之後設定環境變數 /etc/profile
3)使用ndk建立單獨的工具鏈
export ndk=/android/android-ndk-r12 #你的android ndk的路徑
$ndk/build/tools/make-standalone-toolchain.sh –platform=android-12 –install-dir=/usr/android/android-toolchain-12 #你的工程路徑
4) 編寫你工程下的cmakelist.txt,如:
cmake_minimum_required(version 2.8.12)
project(common)
file(glob_recurse sources ./*.cpp)
add_library(common shared $)
5) 執行cmake -dcmake_toolchain_file=#android_cmake/android.toolchain.cmake -dandroid_ndk=/usr/android/android-ndk-r12b -dcmake_build_type=release -dandroid_abi="armeabi-v7a" -dandroid_native_api_level=android-9 . && cmake --build .
其中android_cmake是你的android-cmake的路徑,armeabi-v7a 也可以是armeabi-v8a,架構不同,位數不同,此處不做介紹.
到這裡應該已經可以正常編譯出so檔案了。
不過我的unity打出的安卓包卻沒有這麼幸運,報錯(unable to load library is 64-bit instead of 32-bit)。
其實就是編譯的位數不對,在你的cmakelist.txt中加入 set(cmake_cflags "$ -m32 ")
ok,大功搞成。
順便提一下,匯入so給安卓打包,需要將so檔案放入assets\plugins\android目錄下,否則無法找到。
記一次linux下安裝nginx
使用到的工具 1 xshell 用於訪問遠端伺服器,通過執行指令碼來檢視 刪除伺服器上的檔案 在伺服器上進行安裝程式等操作 2 xftp 用於更換遠端伺服器中的檔案 安裝過程 執行如下命令,安裝nginx所需的依賴 yum y install gcc zlib zlib devel pcre dev...
記一次unity3d遊戲的misc
昨天q.r給我發了乙份unity3d的misc,第一次接觸這種題型,故此記錄一下 1.用apktoolbox apk反編譯工具是一款針對安卓應用的反編譯軟體 解包 解包後的檔案 2.用.net reflector開啟assembly csharp.dll 解包好的檔案裡的那乙份 unity在打包後,...
1 8記一次刪庫的經歷
title date comments categories br 記一次刪庫的經歷 2020 4 21 false 開發環境 部落格 刪庫 1.8 無奈之下,回滾git,表面只丟了最新的幾篇文章而已,關鍵是這個部落格使用的是開源的部落格系統搭建的,文章日期是根據markdown檔案的建立日期自動生...