大致步骤如下:
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 这三个参数可以随意填写,并不需要与正式工程相同。
![Android Android Studio 如何导出 Jar 给 Unity 使用 Android Android Studio 如何导出 Jar 给 Unity 使用](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81MzE5NTM4LWE4YTI3MmM3N2U2NWZhYzEucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvOTQw.png?w=700&webp=1)
2. 选择 SDK 版本
这里的意思是选择一个可兼容的最低的 Android 系统版本。自行选择,随意。
![Android Android Studio 如何导出 Jar 给 Unity 使用 Android Android Studio 如何导出 Jar 给 Unity 使用](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81MzE5NTM4LTAxZGZmMGZmM2YwNmJhMDgucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvOTQw.png?w=700&webp=1)
3. 选择 Empty Activity
直接选择空的 Activity 就可以了,因为这个是本工程的 Activity,并不是我们要导出的 Jar 的 Activity。
![Android Android Studio 如何导出 Jar 给 Unity 使用 Android Android Studio 如何导出 Jar 给 Unity 使用](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81MzE5NTM4LWNkYzg3YjNlZjY3ZTcyZGMucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvOTQw.png?w=700&webp=1)
4. 给此 Activity 定义参数
同样,因为这个是本工程的 Activity,并不是我们要导出的 Jar 的 Activity。所以随意填写,和要导出的 Jar 无关。
![Android Android Studio 如何导出 Jar 给 Unity 使用 Android Android Studio 如何导出 Jar 给 Unity 使用](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81MzE5NTM4LWFhYTY5M2QwYWUzZjgxZWQucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvOTQw.png?w=700&webp=1)
5. 新建 Module
![Android Android Studio 如何导出 Jar 给 Unity 使用 Android Android Studio 如何导出 Jar 给 Unity 使用](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81MzE5NTM4LTJiZTMzYWIwNDQ0Yjk2YjEucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvNjY0.png?w=700&webp=1)
6. 选择 Android Library
![Android Android Studio 如何导出 Jar 给 Unity 使用 Android Android Studio 如何导出 Jar 给 Unity 使用](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81MzE5NTM4LTRmZDBmZDdhMzkyZmNiZWIucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvMTA4MA%3D%3D.png?w=700&webp=1)
7. 输入 Module 的参数
这里的参数就是要导出 jar 的 Android Library 类库参数。Package name 与正式工程一致。 Application/Library name 就是就填你要导出的 jar 插件的名称。Module name 自动填写就不用管了。
![Android Android Studio 如何导出 Jar 给 Unity 使用 Android Android Studio 如何导出 Jar 给 Unity 使用](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81MzE5NTM4LWE0MmIwY2JiNGE4Njg1ZDUucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvMTA4MA%3D%3D.png?w=700&webp=1)
8.找到 Unity 中的 classes.jar 导入到这个 Module 的 libs 中。classes.jar 在安装路径的相对路径如下:
\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes\classes.jar
(Project 视图下可以看到 libs 文件夹)
![Android Android Studio 如何导出 Jar 给 Unity 使用 Android Android Studio 如何导出 Jar 给 Unity 使用](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81MzE5NTM4LWU2NzY1OGM1MTRlMDY0NjcucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvMzU3.png?w=700&webp=1)
9.把 classes.jar 加入依赖。点击 File->Project Structure
![Android Android Studio 如何导出 Jar 给 Unity 使用 Android Android Studio 如何导出 Jar 给 Unity 使用](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81MzE5NTM4LTM0NmNmMWYyMTgzNDU0MTMucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvNzA1.png?w=700&webp=1)
![Android Android Studio 如何导出 Jar 给 Unity 使用 Android Android Studio 如何导出 Jar 给 Unity 使用](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81MzE5NTM4LTliNzE3MWE0ODg3ZmMwMTkucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvOTcy.png?w=700&webp=1)
![Android Android Studio 如何导出 Jar 给 Unity 使用 Android Android Studio 如何导出 Jar 给 Unity 使用](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81MzE5NTM4LTIzMTNmZTdmYzFiNjk2MzYucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvNDQw.png?w=700&webp=1)
Modules 选择自己新建的 Android Library,中间栏点 Dependencies 标签,然后点击右侧加号+,选择 File Dependency,然后找到自己拷贝进来的在 libs 目录下的 classes.jar 点击OK
9.给 Module 添加 Activity Class
![Android Android Studio 如何导出 Jar 给 Unity 使用 Android Android Studio 如何导出 Jar 给 Unity 使用](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81MzE5NTM4LTNhZTZiZDNjYjRmZTFkOTkucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvOTAy.png?w=700&webp=1)
给新建的 Class 命名。输入 Name 然后点击 OK。
![Android Android Studio 如何导出 Jar 给 Unity 使用 Android Android Studio 如何导出 Jar 给 Unity 使用](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81MzE5NTM4LTZkYmJmOWQ2ZmExZmFkNDIucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvNTQ1.png?w=700&webp=1)
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. 效果
![Android Android Studio 如何导出 Jar 给 Unity 使用 Android Android Studio 如何导出 Jar 给 Unity 使用](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81MzE5NTM4LTQ3YjlhNGZlZjNjMjgxOGUucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvNDUw.png?w=700&webp=1)
//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