অ্যান্ড্রয়েডের জন্য ইউনিটি তৈরি করুন

ইউনিটি এডিটর গ্র্যাডল -এর একটি নির্দিষ্ট সংস্করণে আবদ্ধ থাকে। ইউনিটি এডিটরের পূর্ববর্তী সংস্করণগুলো গ্র্যাডল-এর পুরোনো সংস্করণ ব্যবহার করে, যা গুগল মোবাইল অ্যাডস-এর সর্বশেষ সংস্করণের সাথে সামঞ্জস্যপূর্ণ নয়।

অ্যান্ড্রয়েড বিল্ড করতে, আপনার পছন্দের ইউনিটি এডিটর সংস্করণটি নির্বাচন করুন:

২০২৩.১ বা তার বেশি

গ্রেডল বিল্ড প্রি-প্রসেসর সক্রিয় করুন

ইউনিটি এডিটর 2021.3.41f1 এবং এর পরবর্তী সংস্করণগুলিতে গ্রেডল বিল্ড প্রিপ্রসেসর ডিফল্টরূপে সক্রিয় থাকে। এই প্রসেসরটি ইউনিটি এডিটরের পূর্ববর্তী সংস্করণগুলিতে সর্বশেষ Google Mobile Ads Unity Plugin সমর্থন করার জন্য প্রয়োজনীয় সমস্ত গ্রেডল এবং প্লেয়ার সেটিংস স্বয়ংক্রিয়ভাবে প্রয়োগ করে।

গ্রেডল বিল্ড প্রিপ্রসেসর সক্রিয় করুন

অ্যান্ড্রয়েড এবং গ্রেডল সেটিংস ম্যানুয়ালি কনফিগার করুন

কাস্টম গ্রেডল টেমপ্লেট সক্রিয় করুন

প্রজেক্ট সেটিংস > প্লেয়ার > অ্যান্ড্রয়েড > পাবলিশিং সেটিংস > বিল্ড- এ যান এবং Custom Main Gradle TemplateCustom Gradle Properties Template সক্রিয় করুন।

কাস্টম গ্রেডল টেমপ্লেট সক্রিয় করুন

টার্গেট এপিআই লেভেল সেট করুন

প্রধান মেনু থেকে Edit > Project Settings > Player > Android > Other Settings খুলুন এবং Target API Level- কে API Level 23 বা তার বেশিতে সেট করুন।

২০২১.৩.৪১এফ১ - ২০২২.৩

গ্রেডল বিল্ড প্রি-প্রসেসর সক্রিয় করুন

ইউনিটি এডিটর 2021.3.41f1 এবং এর পরবর্তী সংস্করণগুলিতে গ্রেডল বিল্ড প্রিপ্রসেসর ডিফল্টরূপে সক্রিয় থাকে। এই প্রসেসরটি ইউনিটি এডিটরের পূর্ববর্তী সংস্করণগুলিতে সর্বশেষ Google Mobile Ads Unity Plugin সমর্থন করার জন্য প্রয়োজনীয় সমস্ত গ্রেডল এবং প্লেয়ার সেটিংস স্বয়ংক্রিয়ভাবে প্রয়োগ করে।

গ্রেডল বিল্ড প্রিপ্রসেসর সক্রিয় করুন

অ্যান্ড্রয়েড এবং গ্রেডল সেটিংস ম্যানুয়ালি কনফিগার করুন

কাস্টম গ্রেডল টেমপ্লেট সক্রিয় করুন

প্রজেক্ট সেটিংস > প্লেয়ার > অ্যান্ড্রয়েড > পাবলিশিং সেটিংস > বিল্ড- এ যান এবং Custom Main Gradle TemplateCustom Gradle Properties Template সক্রিয় করুন।

কাস্টম গ্রেডল টেমপ্লেট সক্রিয় করুন

টার্গেট এপিআই লেভেল সেট করুন

প্রধান মেনু থেকে Edit > Project Settings > Player > Android > Other Settings খুলুন এবং Target API Level- কে API Level 23 বা তার বেশিতে সেট করুন।

`gradleTemplate.properties`-এ jetifier উপেক্ষা তালিকা যোগ করুন

Assets/Plugins/Android/gradleTemplate.properties ফাইলটি সম্পাদনা করুন এবং নিম্নলিখিত লাইনটি যোগ করুন:

  android.jetifier.ignorelist=annotation-experimental-1.4.0.aar

`AndroidManifest.xml` থেকে `minSDKVersion` সরিয়ে ফেলুন

Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml সম্পাদনা করুন এবং uses-sdk নোড থেকে android:minSdkVersion="21" মুছে ফেলুন। আপনার AndroidManifest.xml দেখতে নিচের মতো হবে:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.google.unity.ads"
    android:versionName="1.0"
    android:versionCode="1">
  <uses-sdk />
  <application>
    <uses-library android:required="false" android:name="org.apache.http.legacy"/>
  </application>
</manifest>

২০১৯.৪ - ২০২১.৩.৩৭এফ১

পূর্বশর্ত

এগিয়ে যাওয়ার আগে, নিশ্চিত করুন যে আপনার কাছে নিম্নলিখিত জিনিসগুলি আছে:

কাস্টম গ্রেডল টেমপ্লেট সক্রিয় করুন

প্রজেক্ট সেটিংস > প্লেয়ার > অ্যান্ড্রয়েড > পাবলিশিং সেটিংস > বিল্ড- এ যান এবং Custom Main Gradle TemplateCustom Gradle Properties Template সক্রিয় করুন।

কাস্টম গ্রেডল টেমপ্লেট সক্রিয় করুন

টার্গেট এপিআই লেভেল সেট করুন

প্রধান মেনু থেকে Edit > Project Settings > Player > Android > Other Settings খুলুন এবং Target API Level- কে API Level 35 বা তার বেশি সেট করুন।

অ্যান্ড্রয়েড স্টুডিওতে রপ্তানি করুন

ফাইল (অথবা ম্যাকওএস-এ ইউনিটি এডিটর) > বিল্ড সেটিংস নির্বাচন করে অ্যান্ড্রয়েড বিল্ড সেটিংস পরিবর্তন করুন এবং এক্সপোর্ট প্রজেক্ট (Export Project) চেক করুন:

রপ্তানি প্রকল্প

যদি আপনি এই মর্মে একটি সতর্কবার্তা পান যে অ্যান্ড্রয়েড এসডিকে প্ল্যাটফর্ম এপিআই লেভেল ৩৫ অনুপস্থিত, তাহলে 'অ্যান্ড্রয়েড এসডিকে আপডেট করুন' বিকল্পটি নির্বাচন করুন।

অ্যান্ড্রয়েড স্টুডিও খুলুন

এই অংশে অ্যান্ড্রয়েড স্টুডিও-এর মধ্যে সম্পাদিত ধাপগুলো বর্ণনা করা হয়েছে।

Gradle JDK কনফিগারেশন আপডেট করুন

File (অথবা MacOS-এ Android Studio) > Settings > Build > Execution > Deployment > Build Tools > Gradle থেকে Gradle সেটিংস খুলুন। Gradle JDK ড্রপ-ডাউনটি খুঁজুন এবং Gradle JDK হিসেবে JDK 17 বা তার পরবর্তী সংস্করণ ব্যবহার করার জন্য সেট করুন।

Gradle JDK কনফিগারেশন আপডেট করুন

আপনার যদি JDK 17 ইনস্টল করা না থাকে, তাহলে Gradle JDK মেনু বার থেকে Download JDK অপশনটি নির্বাচন করে একটি সামঞ্জস্যপূর্ণ সংস্করণ ডাউনলোড করুন। Android Studio যা বিতরণ করে তার সাথে মেলানোর জন্য, আমরা aarch64 সমর্থনসহ JetBrains রানটাইম ভেন্ডরটি ব্যবহারের পরামর্শ দিই।

প্রজেক্ট-স্তরের build.gradle আপডেট করুন

Gradle টুলস-এর ভার্সন 8.1.1 বা তার পরবর্তী সংস্করণে সেট করুন।

plugins {
    id 'com.android.application' version '8.1.1' apply false
    id 'com.android.library' version '8.1.1' apply false
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

/gradle/gradle-wrapper.properties আপডেট করুন

Gradle 8.1.1 বা তার নতুন সংস্করণ ব্যবহার করতে distributionUrl সেট করুন।

distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip

launcher/build.gradle আপডেট করুন

  • launcher/AndroidManifest.xml থেকে package attribute-এর মান ব্যবহার করে namespace attribute সেট করুন।
  • sourceCompatibility এবং targetCompatibility জাভা ১৭-এ সেট করুন।
apply plugin: 'com.android.application'

dependencies {
    implementation project(':unityLibrary')
}

android {
    namespace "com.google.android.gms.example"
    compileSdkVersion 35
    buildToolsVersion '35.0.0'

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    defaultConfig {
        minSdkVersion 28
        targetSdkVersion 35
        applicationId 'com.google.android.gms.example'
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
        }
        versionCode 1
        versionName '1.0'
    }

    aaptOptions {
        noCompress = ['.unity3d', '.ress', '.resource', '.obb', '.bundle', '.unityexp']
        ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
    }

    lintOptions {
        abortOnError false
    }

    buildTypes {
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt')
            signingConfig signingConfigs.debug
            jniDebuggable true
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt')
            signingConfig signingConfigs.debug
        }
    }

    packagingOptions {
        doNotStrip '*/armeabi-v7a/*.so'
        doNotStrip '*/arm64-v8a/*.so'
        doNotStrip '*/x86/*.so'
        doNotStrip '*/x86_64/*.so'
        jniLibs {
            useLegacyPackaging true
        }
    }

    bundle {
        language {
            enableSplit = false
        }
        density {
            enableSplit = false
        }
        abi {
            enableSplit = true
        }
    }
}

apply from: '../unityLibrary/GoogleMobileAdsPlugin.androidlib/packaging_options.gradle'

প্রজেক্ট-স্তরের settings.gradle আপডেট করুন

pluginManagement এবং dependencyResolutionManagement সেকশনগুলো সেট করুন।

pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
    }
}

include ':launcher', ':unityLibrary'
include 'unityLibrary:GoogleMobileAdsPlugin.androidlib'

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    repositories {

        google()
        mavenCentral()
        flatDir {
            dirs "${project(':unityLibrary').projectDir}/libs"
        }
    }
}

unityLibrary/build.gradle আপডেট করুন

  • "com.unity3d.player" মান দিয়ে namespace সেট করুন।
  • sourceCompatibility এবং targetCompatibility JavaVersion.VERSION_17 এ সেট করুন।
    apply plugin: 'com.android.library'

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        // Android Resolver Dependencies Start
        implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
        implementation 'com.google.android.gms:play-services-ads:23.6.0'
        implementation 'com.google.android.ump:user-messaging-platform:3.1.0'
        // Android Resolver Dependencies End
        implementation(name: 'googlemobileads-unity', ext:'aar')
        implementation project('GoogleMobileAdsPlugin.androidlib')
    }

    // Android Resolver Exclusions Start
    android {
      packagingOptions {
          exclude ('/lib/armeabi/*' + '*')
          exclude ('/lib/mips/*' + '*')
          exclude ('/lib/mips64/*' + '*')
          exclude ('/lib/x86/*' + '*')
      }
    }
    // Android Resolver Exclusions End

    android {
        namespace "com.unity3d.player"
        compileSdkVersion 35
        buildToolsVersion '30.0.2'

        compileOptions {
            sourceCompatibility JavaVersion.VERSION_17
            targetCompatibility JavaVersion.VERSION_17
        }

        defaultConfig {
            minSdkVersion 28
            targetSdkVersion 34
            ndk {
                abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64'
            }
            versionCode 1
            versionName '1.0'
            consumerProguardFiles 'proguard-unity.txt'
        }

        lintOptions {
            abortOnError false
        }

        aaptOptions {
            ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
        }

        packagingOptions {
            doNotStrip '*/armeabi-v7a/*.so'
            doNotStrip '*/arm64-v8a/*.so'
            doNotStrip '*/x86_64/*.so'
        }
    }


    apply from: 'GoogleMobileAdsPlugin.androidlib/packaging_options.gradle'
    gradle.projectsEvaluated { apply from: 'GoogleMobileAdsPlugin.androidlib/validate_dependencies.gradle' }

unity/Library/GoogleMobileAdsPlugin.androidlib/build.gradle আপডেট করুন

namespace অ্যাট্রিবিউটের মান "com.google.unity.ads" দিয়ে সেট করুন।

apply plugin: 'android-library'

dependencies {
    implementation fileTree(dir: 'bin', include: ['<em>.jar'])
    implementation fileTree(dir: 'libs', include: ['</em>.jar'])
}

android {
    namespace "com.google.unity.ads"
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            //java.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
            jniLibs.srcDirs = ['libs']
        }
    }

    compileSdkVersion 34
    buildToolsVersion '30.0.2'
    defaultConfig {
        targetSdkVersion 31
    }

    lintOptions {
        abortOnError false
    }
}

অ্যান্ড্রয়েড প্রজেক্টটি চালান

অ্যান্ড্রয়েড স্টুডিও থেকে gradle sync কমান্ডটি চালান এবং প্রজেক্টটি রান করুন