Unity-এর সাথে Android 12-এর জন্য তৈরি করুন

Android 12 (SDK স্তর 31) লক্ষ্য করে এমন একটি Android প্রকল্প তৈরি করার সময়, আপনি নিম্নলিখিত ত্রুটির সম্মুখীন হতে পারেন:

Could not determine the dependencies of task ':launcher:compileDebugJavaWithJavac'.
> Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.
> Configure project :launcher
WARNING: The option 'android.enableR8' is deprecated and should not be used anymore.
It will be removed in a future version of the Android Gradle plugin, and will no longer allow you to disable R8.
Build-tool 31.0.0 is missing DX at <android-sdk-path>/sdk/build-tools/31.0.0/dx
File ~/.android/repositories.cfg could not be loaded.
Build-tool 31.0.0 is missing DX at <android-sdk-path>/sdk/build-tools/31.0.0/dx

এটি অ্যান্ড্রয়েড বিল্ড টুলস সংস্করণ 31.0.0 এবং ইউনিটি বিল্ড সিস্টেমের মধ্যে একটি অসামঞ্জস্যতার কারণে হয়েছে৷ অ্যান্ড্রয়েড বিল্ড টুলস সংস্করণ 31.0.0 অনুযায়ী, D8 এর পক্ষে DX সরানো হয়েছে , যার ফলে অ্যান্ড্রয়েডের জন্য ইউনিটি বিল্ড ভেঙে গেছে।

এই ত্রুটি নিম্নলিখিত পরিস্থিতিতে ট্রিগার হতে পারে:

  • ইউনিটির এআর ফাউন্ডেশন সংস্করণ 1.26-এর জন্য ARCore এক্সটেনশনে আপগ্রেড করা হচ্ছে,
  • ARCore এক্সটেনশন সংস্করণ নির্বিশেষে যেকোন ইউনিটি প্রকল্পে Android SDK লেভেল 31 টার্গেট করা,
  • ARCore এক্সটেনশন সংস্করণ নির্বিশেষে, Build Tools ভার্সন 31.0.0 ইন্সটল থাকাকালীন যেকোনো Unity প্রোজেক্টে Android SDK লেভেল 30 কে টার্গেট করা।

ওয়ার্কআউন্ড

এই অসঙ্গতি নিরসনে আমরা ঐক্যের সঙ্গে কাজ করছি। ইতিমধ্যে, Android 12 কে লক্ষ্য করে এমন একটি প্রকল্প তৈরি করতে নির্দেশাবলী অনুসরণ করুন:

  1. Project Settings > Player > Android > Publishing Settings > Build , উভয়টি নির্বাচন করুন:

    1. Custom Main Gradle Template ,
    2. Custom Launcher Gradle Template

    পাবলিশিং সেটিংস দেখানো একটি স্ক্রিনশট, উভয় গ্রেডল টেমপ্লেট বিকল্পের সাথে বিল্ড প্যান বেছে নিন

  2. উভয় উত্পন্ন ফাইলে নিম্নলিখিত পরিবর্তনগুলি প্রয়োগ করুন:

    • Assets/Plugins/Android/mainTemplate.gradle
    • Assets/Plugins/Android/launcherTemplate.gradle

    উপস্থিত থাকলে, ফাইলের শীর্ষে নিম্নলিখিত মন্তব্যটি সরান:

    // GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
    

    তারপর নিম্নরূপ compileSdkVersion এবং buildToolsVersion সংশোধন করুন:

    buildToolsVersion '30.0.3'
    

নির্মাণ করার সময়, ইউনিটি বিল্ড-টুলস সংস্করণ 30.0.3 ডাউনলোড করবে এবং নির্বাচিত targetSdkVersion বজায় রেখে আপনার প্রকল্প তৈরি করতে এটি ব্যবহার করবে।

কাস্টম গ্রেডল বিল্ড তৈরি করুন

ইউনিটি সংস্করণ 2019.4 , 2020.1 , এবং 2020.2 , যা পুরানো সংস্করণগুলির সাথে নির্মিত, আপনাকে গ্রেডল সংস্করণ 6.1.1 বা পরবর্তীতে একটি কাস্টম গ্রেডল বিল্ড সেট করতে হবে। আপনার অ্যান্ড্রয়েড গ্রেডল প্লাগইন 4.0.1 বা তার পরেও প্রয়োজন হবে।

SDK 31 টার্গেট করা অ্যাপগুলির জন্য Gradle সংস্করণ 6.1.1 বা তার পরবর্তী সংস্করণ প্রয়োজন৷

  1. Preferences > External Tools > Android > Gradle এ যান এবং কাস্টম Gradle বিল্ডটিকে Gradle 6.1.1 বা পরবর্তীতে সেট করুন। ডাউনলোডের জন্য Gradle বিল্ড টুল দেখুন।
  2. উভয় উত্পন্ন ফাইলে নিম্নলিখিত পরিবর্তনগুলি প্রয়োগ করুন:

    • Assets/Plugins/Android/mainTemplate.gradle
    • Assets/Plugins/Android/launcherTemplate.gradle
buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        // Must be Android Gradle Plugin 4.0.1 or later. For a list of
        // compatible Gradle versions refer to:
        // https://developer.android.com/studio/releases/gradle-plugin
        classpath 'com.android.tools.build:gradle:4.0.1'
    }
}

allprojects {
   repositories {
      google()
      jcenter()
      flatDir {
        dirs 'libs'
      }
   }
}

Android 12 টার্গেট করা অ্যাপগুলির জন্য পরিবর্তনগুলি প্রয়োগ করুন৷

আপনার অ্যাপ যদি Android 12 কে টার্গেট করে, তাহলে আপনাকে অবশ্যই android:exported অ্যাট্রিবিউটটি স্পষ্টভাবে ঘোষণা করতে হবে। Android 12-এর সমস্ত পরিবর্তনের জন্য, Android 12-এ আচরণের পরিবর্তনগুলি দেখুন।

  1. Project Settings > Player > Android > Publishing Settings > Build , Custom Main Manifest নির্বাচন করুন।

  2. Assets/Plugins/Android/AndroidManifest.xml এ নিম্নলিখিত পরিবর্তনগুলি প্রয়োগ করুন:

    1. উপস্থিত থাকলে, ফাইলের শীর্ষে নিম্নলিখিত মন্তব্যটি সরান:

      <!-- GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN-->
      
    2. <activity> ট্যাগে android:exported অ্যাট্রিবিউট যোগ করুন:

       <application>
           <activity android:name="com.unity3d.player.UnityPlayerActivity"
                     android:theme="@style/UnityThemeSelector"
                     android:exported="true">
               <intent-filter>
                   <action android:name="android.intent.action.MAIN" />
                   <category android:name="android.intent.category.LAUNCHER" />
               </intent-filter>
               <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
           </activity>
       </application>