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(); } }