我正在嘗試爲Zendesk庫創建綁定,並且遇到了問題。
的Zendesk麗城圖書館(麗城-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>
當搖籃被用作構建工具,它把這個AAR的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>
顯然,dollar_openBracket_applicationId_closeBracket
是不是我所需要的。
看起來一切正常,但是它不可能安裝使用這些綁定的多個Xamarin應用程序,因爲它們都具有相同權限的衝突提供程序(並且用戶會得到INSTALL_FAILED_CONFLICTING_PROVIDER
錯誤)。
有沒有辦法在清單中更改dollar_openBracket_applicationId_closeBracket
?
編輯:一個小樣本,顯示了問題:https://gitlab.com/lassana/ZendeskXamarin/
您在Xamarin.Android中使用的自定義內容提供程序的郵政編碼 –
@Pravin此提供程序不是我的,它來自aar庫。其實,我不會在我的代碼中使用它。 –
有沒有辦法獲得這個實例的示例項目?我最好的猜測是,這個項目可能需要定製的MSBuild功能,或者我們需要修復解析器。 –