Для тех, кто пользуется Android Studio 3.
Ответ Suryanarayana Reddy's правильный, он считает, что он не определяет шаги для его решения, следовательно.
в вашем AndroidManifest.xml под тег приложения добавляет testOnly="false"
и android:debuggable="true"
так:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:testOnly="false"
android:debuggable="true"
>
Редактировать в меню AndroidStudio Build> Build APK (s)
Я не на работе, таким образом, это первое, что пришло на ум, но: Если Вы получаете ссылку на Сайт, можно ли попытаться создать новый SPSite с СИСТЕМОЙ-UserToken?
SPUserToken sut = thisSite.RootWeb.AllUsers["SHAREPOINT\SYSTEM"].UserToken;
using (SPSite syssite = new SPSite(thisSite.Url,sut)
{
// Do what you have to do
}
Другие приложения, если выполнено этот путь (т.е. от задания таймера с явными учетными данными) перестал работать, тому же пути с "Приложением не удалось инициализировать propely". Я просто записал простое приложение, которое берет путь другого исполняемого файла и его аргументов как парамеры, и, когда выполнено от того задания таймера он приводит тот же путь к сбою.
internal class ExternalProcess
{
public static void run(String executablePath, String workingDirectory, String programArguments, String domain, String userName,
String password, out Int32 exitCode, out String output)
{
Process process = new Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardOutput = true;
StringBuilder outputString = new StringBuilder();
Object synchObj = new object();
DataReceivedEventHandler outputAppender =
delegate(Object sender, DataReceivedEventArgs args)
{
lock (synchObj)
{
outputString.AppendLine(args.Data);
}
};
process.OutputDataReceived += outputAppender;
process.ErrorDataReceived += outputAppender;
process.StartInfo.FileName = @"C:\AppRunner.exe";
process.StartInfo.WorkingDirectory = workingDirectory;
process.StartInfo.Arguments = @"""" + executablePath + @""" " + programArguments;
process.StartInfo.UserName = userName;
process.StartInfo.Domain = domain;
SecureString passwordString = new SecureString();
foreach (Char c in password)
{
passwordString.AppendChar(c);
}
process.StartInfo.Password = passwordString;
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
process.WaitForExit();
exitCode = process.ExitCode;
output = outputString.ToString();
}
}
AppRunner в основном делает то же как вышеупомянутый фрагмент, но без имени пользователя и пароля