Android 打包aar給unity3d使用 專案心得
步驟
- 製作androidproject
- 修改build.gradle配置
- 打包aar
- 1.混淆打包aar
- 2.jar包匯出
- 3.在其他的android工程引入aar
- 匯入unity專案
- 執行unity3d輸出apk包
新建一個project
開啟AS,新建–>project
切換到project專案下面
找到app Moudle
找到libs,將unity3d 提供的jar包拷貝到libs下面,右鍵 ->open Moudle setting ,選擇Moudle ,點選dependence
新增lib
選擇拷貝到libs下面的檔案unity_class.jar
MainAvtivity extends UnityPlayerActivity
注意要將setContentView()註釋掉,不載入介面
終於到設定build.gradle
開啟app的build.gradle,將apply plugin: ‘com.android.application’修改為apply plugin: ‘com.android.library’,並且刪除applicationId “com...*”
如果需要混淆打包配置buildtypes
buildTypes {
release {
// Set minifyEnabled to true if you want to run ProGuard on your project
minifyEnabled true
//對齊 zipAlignEnabled true //移除無用的resource 檔案 shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt' } }
不需要混淆打包就設定minifyenable false;
修改完gradle 點選Sync Now,完成之後找到 gradle project視窗,找到app(本Moudle的gradle),右鍵 refresh external project,開啟build,找到build命令,執行,生成aar檔案,檔案一般聲稱在outputs->aar裡面,debug是沒有混淆的,release是混淆的。
但是但是,我們不需要混淆所有的類檔案,這就需要找到gradle裡面的這句話
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-unity.txt’
,這裡的混淆的規則檔案在proguard-unity.txt 裡面
-keep是不混淆
-keep class *.R
不混淆R檔案
-keep class com.example.zhcase.unity3d.MainActivity{*;}
不混淆MainActivity類
-keep class com.example.zhcase.unity3d.BLEDeviceManager{*;}
-keep class com.example.zhcase.unity3d.BleDevice{*;}
-dontwarn com.unity3d.player.**
-keep class com.unity3d.player.UnityPlayerActivity{*;}
-keep class com.unity3d.player.* {;}
不混淆com.unity3d.player包下面所有的類
大概就是這樣子 不明白的可以查下百度
類似的文章還是蠻多的
打成jar包
*在build.gradle 加入
//task makeJar(type: Copy) {
// delete ‘build/libs/mysdk.jar’
// from(‘build/intermediates/bundles/release/’)
// into(‘build/libs/’)
// include(‘classes.jar’)
// rename (‘classes.jar’, ‘mysdk.jar’)
//}
//
//makeJar.dependsOn(build)*
大概的意思就是新建一個task,刪除舊的mysdk.jar包將jar包拷貝到libs下面,mysdk是匯出的jar的包名。
還是Sync Now,在gradle project介面的other的下面找到exportjar,執行輸出jar包,要是minifyEnabled還是true,輸出的jar包還是混淆的。
為了測試自己匯出的aar包是否可用,我自己新建了一個android project,就做一個簡單的介面。
在As project中引用aar 還是需要將aar拷貝到libs資料夾,在gradle的dependencies 中加入
compile(name:’app-release’, ext:’aar’)
name後面的是aar包的包名,
rebuild project,成功的話在project會在build->intermediates下面看到explored-aar中含有這個包
然後按照普通的libs包用就可以了
匯入到unity3d之前需要將原來引入的unity3d_classes.jar檔案刪除,因為unity3d編譯時會生成自己的jar包,要是混淆打包的aar就有一個問題,需要-keep class 所有的jar檔案不被混淆,然後用解壓工具刪除classes.jar的包含的unity3d_classes的檔案。
在unity工程中Assets->plugins->android
Mainfest的檔案是從As中專案拷貝過來的,unity的projectname和Mianfest的packagename一致
Unity呼叫android的方法
AndroidJavaClass jc = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”);
AndroidJavaObject jo = jc.GetStatic(“currentActivity”);
jo.CallStatic(“StarScane”);
帶引數
public void connect(string address)
{
#if UNITY_ANDROID
text.text += “連線裝置”;
AndroidJavaClass jc = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”);
AndroidJavaObject jo = jc.GetStatic(“currentActivity”);
jo.CallStatic(“connect”,address);
#endif
}
最後build&run,我在這一步還是遇到很多問題,配置SDK路徑,顯示platforms的Api is 0 ,這類錯誤基本是SDK路徑錯誤,或者去AS下面的SDKManager更新下SDk版本,也可能會和build tools有關係,反正覺得有問題的你都下載吧 我就是這麼解決的,JDK的路徑和AS的一樣就好
build&run執行到手機就可以
[TOC]
感謝http://www.cnblogs.com/xtqqkss/p/6387271.html的分享,大家可以看看,一步步做,慢慢查問題,還是可以做出來的,雖然我打個包花了我好幾天
再見
相關推薦
Android 打包aar給unity3d使用 專案心得
步驟 製作androidproject 修改build.gradle配置 打包aar 1.混淆打包aar 2.jar包匯出 3.在其他的android工程引入aar 匯入unity專案 執行unity3d輸出apk包 新建一個project
Android Stuido匯出AAR 給Unity3D呼叫注意事項
1. 匯出 AAR過程需要注意,依賴的檔案並沒有打進去,所以要收到拷入到 Unity專案中,如下圖中的 support包,是我專案中要用到的: 2.刪除aar包中重複的 libs下的 jar檔案和 jni下的 .so檔案,否則呼叫的時候會報錯。 3. Manif
SpringBoot專案打包提供給其他專案依賴
1. 剔除不需要的檔案:如Application和ApplicationTests 2. 打包 注意:不能使用springboot自帶打包 <build> <plugins> <plugin>
解決Android 打包aar 無法引用類庫中 dependencies 遠端依賴
前言: 最近在專案中使用到Maven本地倉庫,之前用Maven只是用別人的庫做依賴。而對與上傳本地倉庫或外部倉庫還不是很瞭解,在學習了別人的技術文章後在這裡做一些總結。 基本描述: maven的倉庫分兩類: 1、本地倉庫 maven在本地儲存構件的地方。 maven
Android打包aar檔案上傳到JCenter倉庫指南
目錄 說明 操作步驟 總結: 說明 為什麼要將包上傳到JCenter呢? 我們日常開發中,對於一些公共的元件總是打成jar包或aar包來提高利用性,但是如果多個專案中要用到這些jar包就需要將jar包copy到每一個專案中,非常麻煩。 An
2017最最最最新的Android釋出aar給別人使用方法
目測現在網上釋出aar的方法的教程都是一個版本,也就是maven-plugin為1.3,jfrog為1.0那個版本,老掉牙了有木有,還是自己寫個給自己備用吧。授之以魚不如授之以肉,從頭開始流程走一遍。 零、新建專案 新建一個專案起名為YourLi
Android 打包aar、jar,上傳倉庫
1、打包aar、jar: 成功編譯工程之後,在對應module之下,路徑 build/intermediates/bundles/ 可找到對應的 jar 檔案:classes.jar 在路徑 build/outputs/aar 下可以 找到對應aar檔案 :xx-debu
Android提供aar包給Unity3d呼叫
1.aar包製作 下面通過手機振動為例:PhoneVibrate package com.gamestar.nativesoundpool; import android.Manifest; import android.app.Activity; import android.app.S
Android Studio專案打包AAR,以及專案中嵌入AAR檔案,過程中出現R檔案報錯的坑
這幾天接到新需求,將ec專案嵌入到公司as總專案中,第一次搞,弄了好久,才搞定,入正題. 首先將ec專案匯入as中,解決各種報錯,比如png圖片,.9圖,以及各種不規範的log,吐死之類的,不細說,這個不難. 將專案遷移到AS中,成功執行,OK,開始打包AAR,打包AAR不
用Android Studio導出jar給Unity3D用
player single cti con extend style unity3d 輸入 exclude 1、新建一個Android Studio工程,選擇空Activity 2、創建一個Module 3、將Unity的依賴jar包拷貝到工程的
Android Studio 打包AAR和第三方靜態庫
contain ise ply appcompat pla 依賴 prop 三方庫 spa 需求 現在有一個第三方庫libstatic_add.a和對應的頭文件static.h,要求封裝一個Module,該Module依賴這個靜態庫,要求打包的Module包含該靜態庫。
基於android的汽車租賃平臺專案需求分析心得
背景和目標 當下,汽車行業的發展給人們帶來了巨大的便捷,人們出行對車輛的需求也大大增加,由此興起的汽車租賃服務行業也帶給人們巨大便利,人們對租賃服務的大量需求,也使得汽車租賃行業有廣闊前景。隨著計算機網路快速發展,智慧手機的普及,同時Android系統在移動裝置中得到了廣泛的應用,Android APP
unity3d安卓Android打包流程
1.配置安卓,安裝AndroidSDK 和 JDK,然後下載安裝,就可以了。 2.配置unity使用安卓 Editor→Preference 3.釋出設定Ctrl+Shift+B開啟Build Setting; ①切換到Android平臺Switch Platfor
Android 打包上傳AAR檔案到本地Maven倉庫並且引用
1.前言 建議電腦端觀看,多圖慎入 平常專案中遇到的一些公共元件,公共模組,多個專案都在使用的情況下,我們一般有以下幾種做法 1.整個module匯入工程,如果module中有什麼bug,修改了還要其他專案再重新新增進去,很不方便 2.module打包A
關於Android Studio3.0版本把專案打包生成apk檔案(安卓手機下載可執行)
為了能在手機上體驗開發的專案實際體驗效果,故而查詢學習了,如何生成apk檔案。方法如下:首先在選單欄點選Build,再點選Generate Signed APK得到下圖,並點選Create new...下面Key store path:生成的jsk檔案等路徑設定Passwor
android從入門到精通-專案實戰(心得及原始碼)
個人心得 這個周的時間,我用了三天的時間跟著書籍上面的內容實現了,家庭理財通這個小的app,算是用來練手的開始。首先開始實現的時候,我是先從專案的架構開始,首先你的先理解者這個APP具體是幹什麼的,有幾個模組,每個模組有幾個功能。大致瞭解了之後就可以跟著編寫程
Android Studio 使用Gradle建立遠端本地倉庫,解決打包AAR包時丟失所有dependencies庫
使用Gradle建立遠端本地倉庫,解決打包AAR包時丟失所有dependencies庫 Android的打包AAR功能就是個笑話… 為什麼這麼說? 因為依賴庫打包AAR只會打包依賴庫的程式碼,如果依賴庫引用了其他東西則無法打包進去,所以會出現各種找不到類的問題
Android引入 和打包AAR 檔案
引入 aar 方法一、通過 libs 引入到 app 中 把 aar 檔案放在 libs 目錄下 在 app 的 build.gradle 中新增如下內容 repositories { flatDir { dirs 'libs' }
基於Android硬體裝置跟微信伺服器通訊的專案心得,以UDP Byte通訊為例,建立無向連線,0530手札
這段時間挺忙的,微信企業號等微信系列的教程全部停滯了,原因是我手頭上抓著幾個專案,加班就不說了,今天剛剛把新接手的專案整到大概%80的樣 子吧,準備明天整整,星期一過來直接對接測試,很多朋友跑過來問問題,我是真沒時間,請見諒! 今天就分享下這個專案的總結,原始碼就不貼上了
Android Studio + MAT 給你看真實專案實戰的記憶體洩露分析
先貼出我要進行實戰的專案背景;專案已經出爐快半年時間了,現在要對它進行效能上的優化,這時候就要使用到 MAT 。然後隨便記錄一下我的分析歷程。 首先要了解兩個概念:記憶體溢位和記憶體洩漏 記憶體溢位