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

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

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

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

গ্রেডল বিল্ড প্রি-প্রসেসর সক্ষম করুন

গ্র্যাডেল বিল্ড প্রিপ্রসেসরটি ইউনিটি এডিটর ২০২১.৩.৪১f১ এবং পরবর্তী সংস্করণগুলিতে ডিফল্টরূপে সক্রিয় থাকে। ইউনিটি এডিটরের পূর্ববর্তী সংস্করণগুলিতে সর্বশেষ গুগল মোবাইল বিজ্ঞাপন ইউনিটি প্লাগইন সমর্থন করার জন্য প্রসেসরটি স্বয়ংক্রিয়ভাবে সমস্ত প্রয়োজনীয় গ্র্যাডেল এবং প্লেয়ার সেটিংস প্রয়োগ করে।

গ্রেডল বিল্ড প্রিপ্রসেসর সক্ষম করুন

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

কাস্টম গ্রেডল টেমপ্লেট সক্ষম করুন

Project Settings > Player > Android > Publishing Settings > Build and enable Custom Main Gradle Template এবং Custom Gradle Properties Template -এ যান।

কাস্টম গ্রেডল টেমপ্লেট সক্ষম করুন

টার্গেট API লেভেল 34 সেট করুন

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

টার্গেট API লেভেল সেট করুন

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

গ্রেডল বিল্ড প্রি-প্রসেসর সক্ষম করুন

গ্র্যাডেল বিল্ড প্রিপ্রসেসরটি ইউনিটি এডিটর ২০২১.৩.৪১f১ এবং পরবর্তী সংস্করণগুলিতে ডিফল্টরূপে সক্রিয় থাকে। ইউনিটি এডিটরের পূর্ববর্তী সংস্করণগুলিতে সর্বশেষ গুগল মোবাইল বিজ্ঞাপন ইউনিটি প্লাগইন সমর্থন করার জন্য প্রসেসরটি স্বয়ংক্রিয়ভাবে সমস্ত প্রয়োজনীয় গ্র্যাডেল এবং প্লেয়ার সেটিংস প্রয়োগ করে।

গ্রেডল বিল্ড প্রিপ্রসেসর সক্ষম করুন

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

কাস্টম গ্রেডল টেমপ্লেট সক্ষম করুন

Project Settings > Player > Android > Publishing Settings > Build and enable Custom Main Gradle Template এবং Custom Gradle Properties Template -এ যান।

কাস্টম গ্রেডল টেমপ্লেট সক্ষম করুন

টার্গেট API লেভেল 34 সেট করুন

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

টার্গেট API লেভেল সেট করুন

`gradleTemplate.properties` তে জেটিফায়ার উপেক্ষা তালিকা যোগ করুন

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>

২০১৯.৪ - ২০২১.৩.৩৭f১

পূর্বশর্ত

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

কাস্টম গ্রেডল টেমপ্লেট সক্ষম করুন

Project Settings > Player > Android > Publishing Settings > Build and enable Custom Main Gradle Template এবং Custom Gradle Properties Template -এ যান।

কাস্টম গ্রেডল টেমপ্লেট সক্ষম করুন

টার্গেট API লেভেল 34 সেট করুন

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

টার্গেট API লেভেল সেট করুন

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

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

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

যদি আপনি একটি সতর্কতা পান যে Android SDK প্ল্যাটফর্ম API লেভেল 34 অনুপস্থিত, তাহলে 'Android SDK আপডেট করুন' বিকল্পটি নির্বাচন করুন।

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

এই বিভাগে অ্যান্ড্রয়েড স্টুডিওর মধ্যে সম্পাদিত পদক্ষেপগুলি রয়েছে।

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 আপডেট করুন

গ্রেডল টুলস ভার্সনটি 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 অ্যাট্রিবিউটের মান ব্যবহার করে namespace অ্যাট্রিবিউট সেট করুন।
  • জাভা ১৭ তে 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 34
        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 আপডেট করুন

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

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 চালান এবং প্রকল্পটি চালান