Skip to content

Commit b8ae807

Browse files
author
Stewart Miles
committed
Fixed Android Resolver with readonly AndroidResolverDependencies.xml
When ProjectSettings/AndroidResolverDependencies.xml is checked into a source control system like Perforce and marked readonly a unhandled file exception would stop the Android Resolver from executing. Fixes #140 Bug: 112690886 Change-Id: I0cb707a20ded9b66b50974dd0f3c1f9c6ccd21a3
1 parent f729f63 commit b8ae807

File tree

1 file changed

+28
-19
lines changed

1 file changed

+28
-19
lines changed

source/PlayServicesResolver/src/PlayServicesResolver.cs

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -85,28 +85,37 @@ private static IEnumerable<string> SortSet(HashSet<string> setToSort) {
8585
/// Write this object to DEPENDENCY_STATE_FILE.
8686
/// </summary>
8787
public void WriteToFile() {
88-
Directory.CreateDirectory(Path.GetDirectoryName(DEPENDENCY_STATE_FILE));
89-
using (var writer = new XmlTextWriter(new StreamWriter(DEPENDENCY_STATE_FILE)) {
90-
Formatting = Formatting.Indented,
91-
}) {
92-
writer.WriteStartElement("dependencies");
93-
writer.WriteStartElement("packages");
94-
foreach (var dependencyKey in SortSet(Packages)) {
95-
writer.WriteStartElement("package");
96-
writer.WriteValue(dependencyKey);
88+
try {
89+
Directory.CreateDirectory(Path.GetDirectoryName(DEPENDENCY_STATE_FILE));
90+
using (var writer = new XmlTextWriter(new StreamWriter(DEPENDENCY_STATE_FILE)) {
91+
Formatting = Formatting.Indented,
92+
}) {
93+
writer.WriteStartElement("dependencies");
94+
writer.WriteStartElement("packages");
95+
foreach (var dependencyKey in SortSet(Packages)) {
96+
writer.WriteStartElement("package");
97+
writer.WriteValue(dependencyKey);
98+
writer.WriteEndElement();
99+
}
97100
writer.WriteEndElement();
98-
}
99-
writer.WriteEndElement();
100-
writer.WriteStartElement("files");
101-
foreach (var assetPath in SortSet(Files)) {
102-
writer.WriteStartElement("file");
103-
writer.WriteValue(assetPath);
101+
writer.WriteStartElement("files");
102+
foreach (var assetPath in SortSet(Files)) {
103+
writer.WriteStartElement("file");
104+
writer.WriteValue(assetPath);
105+
writer.WriteEndElement();
106+
}
104107
writer.WriteEndElement();
108+
writer.WriteEndElement();
109+
writer.Flush();
110+
writer.Close();
105111
}
106-
writer.WriteEndElement();
107-
writer.WriteEndElement();
108-
writer.Flush();
109-
writer.Close();
112+
113+
} catch (Exception e) {
114+
Log(String.Format(
115+
"Unable to update dependency file {0} ({1})\n" +
116+
"If auto-resolution is enabled, it is likely to be retriggered " +
117+
"when any operation triggers resolution.", DEPENDENCY_STATE_FILE, e),
118+
level: LogLevel.Warning);
110119
}
111120
}
112121

0 commit comments

Comments
 (0)