Hướng dẫn tạo và sử dụng file JAR trong Android Studio cho Unity

Tạo thư viện JAR từ Android Studio

Để tích hợp mã Java tùy chỉnh vào một dự án Unity, bạn có thể đóng gói mã Java vào một file JAR và sau đó gọi nó từ script C# trong Unity. Hướng dẫn này sẽ hướng dẫn bạn từng bước để tạo một file JAR đơn giản từ Android Studio và sử dụng nó trong Unity.

1. Tạo một dự án Android Studio

Đầu tiên, hãy tạo một dự án mới trong Android Studio. Khi tạo, hãy chú ý đến trường Package Name, vì bạn sẽ cần sử dụng tên gói này sau này trong script Unity.

2. Thêm một lớp Java

Mở dự án Android Studio của bạn, sau đó điều hướng đến Project > app > src > main > java. Tại đây, hãy nhấp chuột phải vào thư mục chứa package name của bạn, chọn New > Java Class và đặt tên cho lớp mới. Nếu bạn không thấy tùy chọn Java Class, hãy đảm bảo Android Studio đã hoàn tất việc tải xuống các plugin cần thiết.

3. Viết mã Java

Trong lớp Java mới được tạo, hãy viết một số phương thức đơn giản để thử nghiệm. Ví dụ:

package com.example.mylibrary;

public class MyLibrary {

    public int getIntValue() {
        return 42;
    }

    public String getStringValue() {
        return "Xin chào từ Java!";
    }

    public void setStringValue(String value) {
        // Logic xử lý chuỗi ở đây
        System.out.println("Đã nhận giá trị: " + value);
    }
}

4. Cấu hình Gradle để tạo JAR

Đây là bước quan trọng nhất để tạo file JAR.

  1. Mở file build.gradle (thường nằm trong thư mục app).
  2. Thay đổi plugin từ com.android.application thành com.android.library.
  3. Thêm một task tùy chỉnh vào file Gradle để xây dựng JAR. Dưới cùng file, thêm đoạn mã sau:
// Thêm vào cuối file build.gradle (Module: app)
apply plugin: 'com.android.library'

// Task để tạo file JAR
task buildJar(type: Copy) {
    // Xóa file JAR cũ nếu tồn tại
    delete 'build/libs/MyLibrary.jar'

    // Nguồn file để sao chép
    from('build/intermediates/aar_main_jar/release/')
    
    // Thư mục đích
    into('build/libs/')

    // Chỉ sao chép file classes.jar
    include('classes.jar')

    // Đổi tên file thành MyLibrary.jar
    rename('classes.jar', 'MyLibrary.jar')
}

// Đảm bảo task buildJar chạy sau khi build project
buildJar.dependsOn(build)

5. Xây dựng file JAR

  1. Sau khi chỉnh sửa, hãy nhấp vào nút Sync Now ở góc trên bên phải để Gradle đồng bộ các thay đổi.
  2. Sau khi đồng bộ xong, hãy mở tab Gradle (thường ở bên phải), điều hướng đến app > Tasks > other và nhấp đúp vào task buildJar để chạy.
  3. Khi task hoàn tất, bạn sẽ thấy một thư mục build được tạo ra. Trong đó, đi đến build > libs, bạn sẽ tìm thấy file MyLibrary.jar.

6. Sử dụng JAR trong Unity

  1. Tạo một dự án Unity mới (hoặc mở dự án hiện có).
  2. Tạo một thư mục Plugins trong thư mục Assets, sau đó tạo một thư mục con Android bên trong.
  3. Sao chép file MyLibrary.jar mà bạn vừa tạo vào thư mục Assets/Plugins/Android trong dự án Unity.

7. Viết script C# để gọi mã Java

Bây giờ, hãy tạo một script C# trong Unity để tương tác với thư viện Java của bạn. Tạo một script mới, ví dụ JarBridge.cs, và thêm mã sau:

using UnityEngine;
using UnityEngine.UI;

public class JarBridge : MonoBehaviour
{
    public Text outputText;

    private AndroidJavaObject javaObject;

    void Start()
    {
        // Tên đối tượng Java được tạo từ package name và tên lớp
        javaObject = new AndroidJavaObject("com.example.mylibrary.MyLibrary");
    }

    public void GetIntValue()
    {
        int value = javaObject.Call<int>("getIntValue");
        outputText.text = "Giá trị số: " + value;
        Debug.Log("Giá trị số nhận được: " + value);
    }

    public void GetStringValue()
    {
        string value = javaObject.Call<string>("getStringValue");
        outputText.text = "Giá trị chuỗi: " + value;
        Debug.Log("Giá trị chuỗi nhận được: " + value);
    }

    public void SetStringValue()
    {
        javaObject.Call<void>("setStringValue", "Chào Unity!");
        outputText.text = "Đã gửi chuỗi đến Java.";
        Debug.Log("Đã gửi chuỗi đến Java.");
    }
}

Để kiểm tra, hãy đính kèm script này vào một GameObject trong cảnh Unity và kéo một thành phần Text vào trường outputText. Khi chạy trên một thiết bị Android, các nút sẽ gọi các phương thức Java tương ứng.

Thẻ: Android Studio Unity JAR Gradle Java

Đăng vào ngày 14 tháng 6 lúc 17:32