大致步骤如下:
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 这三个参数可以随意填写,并不需要与正式工程相同。
![](http://upload-images.jianshu.io/upload_images/5319538-a8a272c77e65fac1.png?imageMogr2/auto-orient/strip|imageView2/2/w/940)
2. 选择 SDK 版本
这里的意思是选择一个可兼容的最低的 Android 系统版本。自行选择,随意。
![](http://upload-images.jianshu.io/upload_images/5319538-01dff0ff3f06ba08.png?imageMogr2/auto-orient/strip|imageView2/2/w/940)
3. 选择 Empty Activity
直接选择空的 Activity 就可以了,因为这个是本工程的 Activity,并不是我们要导出的 Jar 的 Activity。
![](http://upload-images.jianshu.io/upload_images/5319538-cdc87b3ef67e72dc.png?imageMogr2/auto-orient/strip|imageView2/2/w/940)
4. 给此 Activity 定义参数
同样,因为这个是本工程的 Activity,并不是我们要导出的 Jar 的 Activity。所以随意填写,和要导出的 Jar 无关。
![](http://upload-images.jianshu.io/upload_images/5319538-aaa693d0ae3f81ed.png?imageMogr2/auto-orient/strip|imageView2/2/w/940)
5. 新建 Module
![](http://upload-images.jianshu.io/upload_images/5319538-2be33ab0444b96b1.png?imageMogr2/auto-orient/strip|imageView2/2/w/664)
6. 选择 Android Library
![](http://upload-images.jianshu.io/upload_images/5319538-4fd0fd7a392fcbeb.png?imageMogr2/auto-orient/strip|imageView2/2/w/1080)
7. 输入 Module 的参数
这里的参数就是要导出 jar 的 Android Library 类库参数。Package name 与正式工程一致。 Application/Library name 就是就填你要导出的 jar 插件的名称。Module name 自动填写就不用管了。
![](http://upload-images.jianshu.io/upload_images/5319538-a42b0cbb4a8685d5.png?imageMogr2/auto-orient/strip|imageView2/2/w/1080)
8.找到 Unity 中的 classes.jar 导入到这个 Module 的 libs 中。classes.jar 在安装路径的相对路径如下:
EditorDataPlaybackEnginesAndroidPlayerVariationsmonoReleaseClassesclasses.jar
(Project 视图下可以看到 libs 文件夹)
![](http://upload-images.jianshu.io/upload_images/5319538-e67658c514e06467.png?imageMogr2/auto-orient/strip|imageView2/2/w/357)
9.把 classes.jar 加入依赖。点击 File->Project Structure
![](http://upload-images.jianshu.io/upload_images/5319538-346cf1f218345413.png?imageMogr2/auto-orient/strip|imageView2/2/w/705)
![](http://upload-images.jianshu.io/upload_images/5319538-9b7171a4887fc019.png?imageMogr2/auto-orient/strip|imageView2/2/w/972)
![](http://upload-images.jianshu.io/upload_images/5319538-2313fe7fc1b69636.png?imageMogr2/auto-orient/strip|imageView2/2/w/440)
Modules 选择自己新建的 Android Library,中间栏点 Dependencies 标签,然后点击右侧加号+,选择 File Dependency,然后找到自己拷贝进来的在 libs 目录下的 classes.jar 点击OK
9.给 Module 添加 Activity Class
![](http://upload-images.jianshu.io/upload_images/5319538-3ae6bd3cb4fe1d99.png?imageMogr2/auto-orient/strip|imageView2/2/w/902)
给新建的 Class 命名。输入 Name 然后点击 OK。
![](http://upload-images.jianshu.io/upload_images/5319538-6dbbf9d6fa1fad42.png?imageMogr2/auto-orient/strip|imageView2/2/w/545)
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. 效果
![](http://upload-images.jianshu.io/upload_images/5319538-47b9a4fef3c2818e.png?imageMogr2/auto-orient/strip|imageView2/2/w/450)
//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