В то время как обещания и обратные вызовы хорошо работают во многих ситуациях, боль в задней части выражает нечто вроде:
if (!name) {
name = async1();
}
async2(name);
. В итоге вы пройдете через async1
; проверьте, не определено ли name
или нет, и соответственно вызовите обратный вызов.
async1(name, callback) {
if (name)
callback(name)
else {
doSomething(callback)
}
}
async1(name, async2)
Хотя в в порядке хорошо , это раздражает, когда у вас много подобных случаев и обработка ошибок. Вы можете проверить проект здесь . Fibers
помогает в решении проблемы. var Fiber = require('fibers')
function async1(container) {
var current = Fiber.current
var result
doSomething(function(name) {
result = name
fiber.run()
})
Fiber.yield()
return result
}
Fiber(function() {
var name
if (!name) {
name = async1()
}
async2(name)
// Make any number of async calls from here
}
По-видимому, это известная проблема : Xamarin Forms требует, чтобы TargetAndroidVersion равнялась 21. (В конфигурационном GUI это называется «Скомпилировать с помощью версии Android»)
Я решил, что изменение параметра Android Linker Behavior в настройках> Android Builder> Linker из «Link sdk Assemblies Only» означает «не ссылаться».
Я изменил свойства Linker> Связывание только с Sdk Assemblies только для Sdk и пользовательских сборок для конфигурации Release.
В моем случае проблема была указана в dll Xamarin.iOS в проекте pcl. Связывание не работает для этой сборки. Исправлена проблема с исправлением.
Jus Я изменил ссылку с «NONE» на «sdk и сборку пользователей», и я запустил мое решение, и проблема была решена. после этого вы можете изменить «сборка sdk и users» на «NONE» и запустить проект без каких-либо проблем.
Но размер файла выпуска может быть изменен.
В моем случае проблема возникла из-за добавления Xamarin.ios.dll в Portable Project. Я удалил эту ссылку и теперь работает
Я исправил это, понизив Xamarin.Android.Support.v4 до версии 21.0.0 в NuGet Package Manager. Надеюсь, что вам помогут
У меня также была та же проблема. После серии проб и ошибок я нашел решение.
В вашем манифесте установлена целевая версия Android для Android 7.1 (API-уровень 25 нуга) или выше. Установите Компиляцию версии Android на Android 7.1.
Надеюсь, это поможет
В моем преследовании я изменил свойство компоновщика (Linker -> Linking) на «Нет». Я использую visual studio 2017 RC