70 lines
2.2 KiB
C#
Executable File
70 lines
2.2 KiB
C#
Executable File
#if UNITY_ANDROID
|
|
|
|
using UnityEngine;
|
|
using UnityEditor.Android;
|
|
using System.IO;
|
|
using System.Text;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Copyright 2012-2021 RenderHeads Ltd. All rights reserved.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
namespace RenderHeads.Media.AVProVideo.Editor
|
|
{
|
|
public class PostProcessBuild_Android : IPostGenerateGradleAndroidProject
|
|
{
|
|
public int callbackOrder { get { return 1; } }
|
|
|
|
public void OnPostGenerateGradleAndroidProject( string path )
|
|
{
|
|
GradleProperty( path );
|
|
}
|
|
|
|
private void GradleProperty( string path )
|
|
{
|
|
#if UNITY_2020_1_OR_NEWER || UNITY_2020_OR_NEWER
|
|
// When using Unity 2020.1 and above it has been seen that the build process overly optimises which causes issues in the ExoPlayer library.
|
|
// To overcome this issue, we need to add 'android.enableDexingArtifactTransform=false' to the gradle.properties.
|
|
// Note that this can be done by the developer at project level already.
|
|
|
|
Debug.Log("[AVProVideo] Post-processing Android project: patching gradle.properties");
|
|
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
|
|
// Path to gradle.properties
|
|
string filePath = Path.Combine( path, "..", "gradle.properties" );
|
|
|
|
if( File.Exists( filePath ) )
|
|
{
|
|
// Load in all the lines in the file
|
|
string[] allLines = File.ReadAllLines( filePath );
|
|
|
|
foreach( string line in allLines )
|
|
{
|
|
if( line.Length > 0 )
|
|
{
|
|
// Add everything except enableDexingArtifactTransform
|
|
if ( !line.Contains( "android.enableDexingArtifactTransform" ) )
|
|
{
|
|
stringBuilder.AppendLine( line );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#if UNITY_6000_0_OR_NEWER
|
|
// Add in line to set useFullClasspathForDexingTransform to true
|
|
stringBuilder.AppendLine( "android.useFullClasspathForDexingTransform=true" );
|
|
#else
|
|
// Add in line to set enableDexingArtifactTransform to false
|
|
stringBuilder.AppendLine( "android.enableDexingArtifactTransform=false" );
|
|
#endif
|
|
|
|
// Write out the amended file
|
|
File.WriteAllText( filePath, stringBuilder.ToString() );
|
|
#endif
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif // UNITY_ANDROID |