Android studio4.0 內嵌 UnityActivity
- 用最簡單方法嵌入UnityActivity
- 首先,得匯出Unity Android工程
- 其次,新建android studio工程
- 排錯
- 感言
- 問題
用最簡單方法嵌入UnityActivity
哥們我在網上牌子都翻爛了,各種各樣的姿勢看的我眼花繚亂,最終覺得野花還是挺香的,自己動手摸索起來了!
首先,得匯出Unity Android工程
匯出工程不多說,看圖寫話!這里External Tools里的Android環境全是用Unity Hub手動匯入的,完全沒有問題,當然你也可以自己去下載SDK,JDK,NDK這些玩意,小白的話不折磨個半天是弄不明白的,但哥們我還是啰嗦一句,我們是Unity3d程式,建議直接用官方爸爸提供的Hub去安裝Android環境吧,


我這里使用的是Unity2019.3.4f 匯出的Unity android工程,unityLibrary目錄下有兩個模塊:
- launcher
- unityLibrary
Unity官方宣告這樣是為了把Unity的專案完全剝離出來,方便之后二次處理,我這里就只使用unityLibrary,
特別注意:該專案中是沒有gradle/wrapper/gradle-wrapper.properties該檔案架構的,所以別傻傻的去找了,

其次,新建android studio工程
新建android工程,我這里android studio 版本是4.1.2,菜雞互啄,新建完全Next——>Next,當然,這里你得懂得起android studio最起碼的知識,新建工程,匯入模塊,模塊依賴對吧,不然還是先去看看android sudio的第一個hello world的例子吧,
-
新建好的工程,打開Project視圖,然后點擊工具列上的File->New->ImportModule,這里點擊的是最頂部工具列上的File,
-
匯入模塊,這里只需要匯入unityLibrary模塊,launcher模塊不需要匯入,因為我們自己新建了一個android專案,只需要在新建專案的activity里顯示unityActivity就行了,

-
匯入成功后,選中app模塊,右鍵找到Open Module Settings設定,將unityLibrary設定成app模塊的依賴項,

-
在MainActivity.java中添加如下代碼,這里就最簡單的代碼,在默認activity里打開UnityActivity,別跟我說為啥,我尼瑪會生氣,

-
點擊Sync Project with Gradle Files,然后進行build,build前你得把模擬器或者手機接好啊,不然build個卵,我這里用的夜神模擬器,版本7.0.0.6,還是挺好用的,
-
上面直接build肯定是不成功的,畢竟Unity匯出的android工程和android studio自己創建的,組態檔還是有些區別的,嫡庶還是存在嫌隙的,接下來我們開始解決錯誤,不多,請拿包瓜子繼續嗑瓜,繼續擼,繼續看,我猜哥們兒的手都起繭了吧,節制啊,
排錯
- 第一次build將出現以下錯誤,抓重點“ java.lang.UnsatisfiedLinkError”,無非就是少了一些庫的參考而已,在app模塊的build.gradle中添加紅框內的配置資訊,當然其他基礎配置要保持一致,
如:
compileSdkVersion 30
minSdkVersion 19
targetSdkVersion 30
versionCode 1
versionName 1.0
2021-03-30 14:11:47.661 7154-7154/com.snoopy.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.snoopy.myapplication, PID: 7154
java.lang.Error: FATAL EXCEPTION [main]
Unity version : 2019.3.4f1
Device model : HUAWEI LIO-AN00
Device fingerprint: HUAWEI/LIO-AN00/LIO-AN00:7.1.2/LIO-AN00/700201021:user/release-keys
Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.snoopy.myapplication-2/base.apk"],nativeLibraryDirectories=[/data/app/com.snoopy.myapplication-2/lib/x86, /system/lib, /vendor/lib]]] couldn't find "libmain.so"

- 修改build.gradle組態檔需要點擊Sync,然后在進行build,等待苦逼的結果!哎呀,我尼瑪又有錯,這個錯,我在網上翻了很多只知道怎么改,但不知什么意思,知道的可以在評論區附上,感謝各位春風亭大佬,光顧我這千金閣!
com.snoopy.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.snoopy.myapplication, PID: 7728
java.lang.Error: FATAL EXCEPTION [main]
Unity version : 2019.3.4f1
Device model : HUAWEI LIO-AN00
Device fingerprint: HUAWEI/LIO-AN00/LIO-AN00:7.1.2/LIO-AN00/700201021:user/release-keys
Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.snoopy.myapplication/com.unity3d.player.UnityPlayerActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x0

- 終于,終于,啊啊啊,成功了,

感言
終于寫完了,作為一個小白,看網上大佬們寫的還是有點頭疼,于是按照自己的步驟整理了一遍,有不懂的可以留言,
問題
1.為啥在strings.xml添加 game_view_content_description 這個值就能解決第二個錯誤?
歡迎致電!*************
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/271397.html
標籤:其他
