大致步驟如下:
1.創建新的 Android Studio 工程
2.為此 Android Studio 工程創建 Android Library 類庫(也就是一個 Module)(后面就是用它生成 jar)
3.生成 Jar
4.將 jar 導入 Unity 工程中的 Assets/Plugins/Android/
5.使用 AndroidJavaObject.Call 等方式調用
創建新的 Android Studio 工程#
1. 設置好 名稱 、 路徑 、 包名
這里的 Package name 只是這個 Android Studio 工程的包名,而我們需要的並不是這個工程,我們后面會在這個工程內新建一個 Android Library 類庫,這個類庫才是我們要導出 Jar 的對象。所以,這個 Android Studio 工程的 Application name 、Company Domain 、Package name 這三個參數可以隨意填寫,並不需要與正式工程相同。

2. 選擇 SDK 版本
這里的意思是選擇一個可兼容的最低的 Android 系統版本。自行選擇,隨意。

3. 選擇 Empty Activity
直接選擇空的 Activity 就可以了,因為這個是本工程的 Activity,並不是我們要導出的 Jar 的 Activity。

4. 給此 Activity 定義參數
同樣,因為這個是本工程的 Activity,並不是我們要導出的 Jar 的 Activity。所以隨意填寫,和要導出的 Jar 無關。

5. 新建 Module

6. 選擇 Android Library

7. 輸入 Module 的參數
這里的參數就是要導出 jar 的 Android Library 類庫參數。Package name 與正式工程一致。 Application/Library name 就是就填你要導出的 jar 插件的名稱。Module name 自動填寫就不用管了。

8.找到 Unity 中的 classes.jar 導入到這個 Module 的 libs 中。classes.jar 在安裝路徑的相對路徑如下:
\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes\classes.jar
(Project 視圖下可以看到 libs 文件夾)

9.把 classes.jar 加入依賴。點擊 File->Project Structure



Modules 選擇自己新建的 Android Library,中間欄點 Dependencies 標簽,然后點擊右側加號+,選擇 File Dependency,然后找到自己拷貝進來的在 libs 目錄下的 classes.jar 點擊OK
9.給 Module 添加 Activity Class

給新建的 Class 命名。輸入 Name 然后點擊 OK。

package com.example.myjar; import android.content.Intent; import android.os.Bundle; import com.unity3d.player.UnityPlayerActivity; public class MyActivity extends UnityPlayerActivity { @Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); } public void ShareText(String message, String body) { Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); sharingIntent.setType("text/plain"); sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, message); sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, body); startActivity(Intent.createChooser(sharingIntent, "Share via")); } }
作者:耳朵里有只風
鏈接:https://www.jianshu.com/p/8256c0da444a
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
第一行的 "com.unity3d.player.UnityPlayer" 是需要調用的接口所在的 Activity 所在的包名,如果是 unity 主 Activity ,就可以直接使用 "com.unity3d.player.UnityPlayer",如果是其他插件包,就使用那個包的包名。
16. 效果

//https://www.jianshu.com/p/8256c0da444a
https://www.cnblogs.com/Jason-c/p/6743385.html
https://www.jianshu.com/p/86b275da600e
https://blog.csdn.net/hnzmdlhc/article/details/89296388