-
Notifications
You must be signed in to change notification settings - Fork 4
Include Android
⚡ Before you start
Make sure you have correctly setup project settings.
- Configure Gradle
- Configure EDM4U
- Enable MultiDEX
- AndroidManifest template
- Update AndroidManifest permissions
The Clever Ads Solutions Unity plugin is distributed with the EDM4U library. This library is intended for use by any Unity plugin that requires access to Android specific libraries (e.g., AARs) or iOS CocoaPods. It provides Unity plugins the ability to declare dependencies, which are then automatically resolved and copied into your Unity project.
Using EDM4U, you will be able to avoid downloading the Android artifacts into your project. Instead, the artifacts will be added to your gradle file during the compilation. To enable this process, follow these steps:
- Go to:
Player Settings > Publishing Settings > Build
-
Custom Main Gradle Template
to configure third party dependencies.
-
Custom Launcher Gradle Template
to enable MultiDEX.
You can read more about MuliDex on the Android Deleveloper page. -
Custom Base Gradle Template
to update Gradle plugin with fix support Android 11.
You can read more about fix Gradle plugin with support Android 11 on the Android Deleveloper page. -
Custom Gradle Properties Template
to use Jetfier by EDM4U.
- Go to:
Assets > External Dependency Manager > Android > Settings
-
Patch mainTemplate.gradle
The mainTemplate.gradle file will be patched with dependencies managed by the Android Resolver. -
Use Jetfier
Legacy Android support libraries and references to them from other libraries will be rewritten to use Jetpack using the Jetifier tool. -
Patch gradleTemplate.properties
For Unity 2019.3 and above, it is recommended to enable Jetfier and AndroidX via gradleTemplate.properties. This has no effect in older versions of Unity. - Save your changes, by pressing
OK
In the Unity editor, select Assets > External Dependency Manager > Android Resolver > Resolve
. The Unity External Dependency Manager library will append dependencies to mainTemplate.gradle
of your Unity app.
At times, including the CAS SDK may cause the 64K limit on methods that can be packaged in an Android dex file to be breached. This can happen if, for example, your app packs a lot of features for your users and includes substantive code to realize this.
If you would like to enable the MultiDEX support library, you can do so in the Assets > CleverAdsSolutions > Android Settings
by following these instructions:
- MultiDEX enabled
You can read more about MultiDex on the Android Deleveloper page.
If you do not find the manifest file Plugins/Android/AndroidManifest.xml, you can take it from the example.
Or Unity 2019.3+ makes it possible to activate in Player Settings > Publishing Settings > Build > Custom Main Manifest
checkmark.
Add the optional permissions to your Assets/Plugins/Android/AndroidManifest.xml
file inside the <manifest>
tag but outside the <application>
tag.
VIBRATE
permission is used for certain ads that vibrate during play. This is a normal level permission, so this permission just needs to be defined in the manifest to enable this ad feature.
<manifest>
<uses-permission android:name="android.permission.VIBRATE" />
</manifest>
ACCESS_COARSE_LOCATION
or ACCESS_FINE_LOCATION
permissions is not a mandatory permission, however, including it will enable accurate ad targeting.
<manifest>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- OR -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
</manifest>
WRITE_EXTERNAL_STORAGE
permission is used for certain ads that allow the user to save a screenshot to their phone.
Note that with this permission on devices running Android 6.0 (API 23) or higher, this permission must be requested from the user.
See Requesting Permissions for more details.
<manifest>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
Sometimes permissions are included in the partner SDK’s internal AndroidManifest.
To remove a specific embedded permission (for example, ACCESS_COARSE_LOCATION), add the following tag to your top level AndroidManifest during integration:
<manifest>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove"/>
</manifest>
What’s Next?
- Preparing Mediated Networks
- Make sure you are Include iOS platform as well.
- Verify your integration
- Project Setup
- Configuring SDK
- Include Android
- Include iOS
- Additional mediation steps
- App-ads.txt🔗