我正在尝试为Zendesk库创建绑定,但我遇到了一个问题.
Zendesk Belvedere库(belvedere-1.0.2.1.aar)在其清单文件中包含一个文件提供程序:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
...
<application>
<provider
android:name="com.zendesk.belvedere.BelvedereFileProvider"
android:authorities="${applicationId}.belvedere.attachments"
android:exported="false"
android:grantUriPermissions="true" >
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/belvedere_attachment_storage" />
</provider>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
当Gradle用作构建工具时,它会将其放在APK文件中,${applicationId}.belvedere.attachments并com.your_package_name_here.belvedere.attachments在合并的清单文件中替换它.没关系.
但是,Xamarin以不同的方式处理它.这是我在最终APK的清单中找到的内容:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
...
<application
...
...
<provider
android:name="com.zendesk.belvedere.BelvedereFileProvider"
android:exported="false"
android:authorities="dollar_openBracket_applicationId_closeBracket"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/belvedere_attachment_storage" />
</provider>
...
...
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
显然,dollar_openBracket_applicationId_closeBracket不是我需要的.
似乎一切正常,但是不可能安装几个使用这些绑定的Xamarin应用程序,因为所有这些应用程序都会有相同权限的冲突提供程序(并且用户会收到INSTALL_FAILED_CONFLICTING_PROVIDER错误).
是否有办法改变dollar_openBracket_applicationId_closeBracket清单?
编辑:显示问题的小样本:https://gitlab.com/lassana/ZendeskXamarin/
今天我更新了Android版的NuGet包(我们目前正在为Android和iOS开发).更新后,我无法再构建Android版本了.这是我到目前为止每次更新包装后遇到的问题,但这次我无法解决这个问题.通常重启Xamarin或重新安装NuGet包有帮助.
我有151条错误消息,如下所示:
/Users/Username/Projects/MyAppName/Droid/Resources/Resource.designer.cs(118,118):错误CS0117:> MyAppName.Droid.Resource.Attribute'不包含mediaRouteSettingsDrawable的定义'(CS0117)(MyAppName.Droid)
以下是我尝试解决此问题的所有步骤(按此顺序):
添加Android软件包:只添加所需的软件包,让NuGet自行解决依赖关系(如Xamarin.Android.Support,Xamarin.GooglePlayServices等).已安装的包(按此顺序):
Xamarin.Forms .......................................(2.2.0.45)
Xamarin.Forms .Maps ...........................(2.2.0.45)
XLabs.Forms ............. ...............................(2.0.5782)
ZXing.Net.Mobile ......... .........................(2.0.4.46)
Newtonsoft.Json ................. ...................(8.0.3)
Xam.Plugin.Geolocator ..................... ...(3.0.4)
建立 - >清理所有
我真的不知道该怎么做了.任何帮助/想法都表示赞赏,提前谢谢.
我借助MediaCodec和编码视频MediaMuxer.结果我有mp4视频文件.如何设置此mp4文件的元数据(创建时间)?MediaMetadataRetriever只能读取元数据,但不能更改.我不想使用ffmpeg.我试过mp4parser库(这个类),但它对我不起作用.
我有一个包装UIWebView的Xamarin.iOS应用程序.不幸的是,我在Firebase控制台中收到大量崩溃事件; 它只发生在iOS 10的iPhone上,iPad没有这个问题.
我个人无法重现崩溃,所以我只有堆栈跟踪:
EXC_BAD_ACCESS / KERN_INVALID_ADDRESS
1 libobjc.A.dylib objc_msgSend + 115024
2 UIKit -[_UIKeyboardTextSelectionController selectTextWithGranularity:atPoint:executionContext:] + 5209476
3 UIKit -[_UIKeyboardBasedNonEditableTextSelectionGestureController oneFingerForcePan:] + 5624368
4 UIKit -[UIGestureRecognizerTarget _sendActionWithGestureRecognizer:] + 6166732
5 UIKit _UIGestureRecognizerSendTargetActions + 6181120
6 UIKit _UIGestureRecognizerSendActions + 1700016
7 UIKit -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 266176
8 UIKit _UIGestureEnvironmentUpdate + 6116260
9 UIKit -[UIGestureEnvironment _deliverEvent:toGestureRecognizers:usingBlock:] + 6115188
10 UIKit -[UIGestureEnvironment _updateGesturesForEvent:window:] + 6111776
11 UIKit -[UIWindow sendEvent:] + 258892
12 UIKit -[UIApplication sendEvent:] + 65404
13 UIKit __dispatchPreprocessedEventFromEventQueue + 8428060 …Run Code Online (Sandbox Code Playgroud) iOS 11 为 WKWebView 带来了一些更新,包括 cookie 管理。我已经开始从 UIWebView 迁移我的应用程序并遇到了一个问题:尽管 WKHttpCookieStore 提供了一种删除 cookie 的方法(deleteCookie:completionHandler:,Xamarin wrapper: DeleteCookieAsync),但实际上它并没有删除所有 cookie。这是我的代码:
WKHttpCookieStore cookieStore = WKWebsiteDataStore.DefaultDataStore.HttpCookieStore;
// Delete all cookies
NSHttpCookie[] allCookies = await cookieStore.GetAllCookiesAsync();
foreach (NSHttpCookie cookieToDelete in allCookies)
{
await cookieStore.DeleteCookieAsync(cookieToDelete);
}
NSHttpCookie[] newCookies = await cookieStore.GetAllCookiesAsync();
// why newCookies is not an empty array?
myWkWebView.LoadRequest(new NSUrlRequest(new NSUrl("https://facebook.com/")));
Run Code Online (Sandbox Code Playgroud)
例如,这个 cookie 正在被删除:
NSHTTPCookie
version:1
name:c_user
value:100015842...
expiresDate:'2017-12-27 07:37:39 +0000'
created:'2017-09-28 07:39:01 +0000'
sessionOnly:FALSE
domain:.facebook.com
partition:none
path:/
isSecure:TRUE
path:"/"
isSecure:TRUE
Run Code Online (Sandbox Code Playgroud)
但这个不是: …
我正在使用Document Interaction API在Instagram上分享我的照片。我使用“ igo”作为文件扩展名,文档交互UTI的标识符为com.instagram.exclusivegram。相同的代码适用于iOS12.4