public override void fixProblem() { string fullManifestName = MultidexActivator.getCustomManifestPath(); string defaultTemplate = Path.Combine(EditorApplication.applicationContentsPath, MultidexActivator.manifestDefaultTemplatePath); if (!File.Exists(defaultTemplate)) { string unixAppContentsPath = Path.GetDirectoryName(Path.GetDirectoryName(EditorApplication.applicationContentsPath)); defaultTemplate = Path.Combine(unixAppContentsPath, MultidexActivator.manifestDefaultTemplatePath); } string appodealTemplate = AppodealUnityUtils.combinePaths(Application.dataPath, MultidexActivator.appodealTemplatesPath, MultidexActivator.manifestTemplateName); File.Copy(File.Exists(defaultTemplate) ? defaultTemplate : appodealTemplate, fullManifestName); AssetDatabase.ImportAsset(AppodealUnityUtils.absolute2Relative(fullManifestName), ImportAssetOptions.ForceUpdate); // There are no multidex activity in default AndroidManifest. But again, they can add it. XmlElement appNode = MultidexActivator.getApplicationNode(fullManifestName); string ns = appNode.GetNamespaceOfPrefix("android"); if (!appNode.HasAttribute("name", ns)) { new AddNameAttrubute(appNode, ns).fixProblem(); } }
public override void fixProblem() { var fullManifestName = MultidexActivator.getCustomManifestPath(); var defaultTemplate = Path.Combine(EditorApplication.applicationContentsPath, MultidexActivator.manifestDefaultTemplatePath); if (!File.Exists(defaultTemplate)) { var unixAppContentsPath = Path.GetDirectoryName(Path.GetDirectoryName(EditorApplication.applicationContentsPath)); Debug.Assert(unixAppContentsPath != null, nameof(unixAppContentsPath) + " != null"); defaultTemplate = Path.Combine(unixAppContentsPath, MultidexActivator.manifestDefaultTemplatePath); } var appodealTemplate = AppodealUnityUtils.combinePaths(Application.dataPath, MultidexActivator.appodealTemplatesPath, MultidexActivator.manifestTemplateName); File.Copy(File.Exists(defaultTemplate) ? defaultTemplate : appodealTemplate, fullManifestName); AssetDatabase.ImportAsset(AppodealUnityUtils.absolute2Relative(fullManifestName), ImportAssetOptions.ForceUpdate); var appNode = MultidexActivator.getApplicationNode(fullManifestName); var ns = appNode.GetNamespaceOfPrefix("android"); if (!appNode.HasAttribute("name", ns)) { new AddNameAttrubute(appNode, ns).fixProblem(); } }
public override void fixProblem() { //EditorApplication.applicationContentsPath is different for macos and win. need to fix to reach manifest and gradle templates string defaultGradleTemplateFullName = MultidexActivator.getDefaultGradleTemplate(); string destGradleScriptFullName = AppodealUnityUtils.combinePaths(Application.dataPath, MultidexActivator.androidPluginsPath, MultidexActivator.gradleTemplateName); //Prefer to use build.gradle from the box. Just in case. if (File.Exists(defaultGradleTemplateFullName)) { File.Copy(defaultGradleTemplateFullName, destGradleScriptFullName); } AssetDatabase.ImportAsset(AppodealUnityUtils.absolute2Relative(destGradleScriptFullName), ImportAssetOptions.ForceUpdate); //There are no multidex settings in default build.gradle but they can add that stuff. ImportantGradleSettings settings = new ImportantGradleSettings(destGradleScriptFullName); if (!settings.isMultiDexAddedCompletely()) { new EnableMultidexInGradle(destGradleScriptFullName).fixProblem(); } }
public override void fixProblem() { string fullManifestName = MultidexActivator.getCustomManifestPath(); appNode.SetAttribute("name", ns, MultidexActivator.manifestMutlidexApp); appNode.OwnerDocument.Save(fullManifestName); AssetDatabase.ImportAsset(AppodealUnityUtils.absolute2Relative(fullManifestName), ImportAssetOptions.ForceUpdate); }
public override void fixProblem() { var defaultGradleTemplateFullName = MultidexActivator.getDefaultGradleTemplate(); var destGradleScriptFullName = AppodealUnityUtils.combinePaths(Application.dataPath, MultidexActivator.androidPluginsPath, MultidexActivator.gradleTemplateName); if (File.Exists(defaultGradleTemplateFullName)) { File.Copy(defaultGradleTemplateFullName, destGradleScriptFullName); } AssetDatabase.ImportAsset(AppodealUnityUtils.absolute2Relative(destGradleScriptFullName), ImportAssetOptions.ForceUpdate); var settings = new ImportantGradleSettings(destGradleScriptFullName); if (!settings.isMultiDexAddedCompletely()) { new EnableMultidexInGradle(destGradleScriptFullName).fixProblem(); } }