OneSignal / OneSignal-Xamarin-SDK

OneSignal is a free push notification service for mobile apps. This plugin makes it easy to integrate your Xamarin app with OneSignal. https://onesignal.com
Other
104 stars 50 forks source link

Getting errors for PermissionsActivity after upgrading to AndroidX #205

Closed EmilAlipiev closed 4 years ago

EmilAlipiev commented 4 years ago

Description: I have just converted my Xamarin.Android App to AndroidX and only errors i am getting are for OneSignal

Environment

  1. What version of the Xamarin SDK are you using? Latest 3.9.0
  2. How did you add the SDK to your project (eg. nuget) Nuget

Errors

7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1796,2): warning : The requested operation cannot be performed on a file with a user-mapped section open.
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1796,2): warning : 
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1796,2): warning :    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1796,2): warning :    at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1796,2): warning :    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1796,2): warning :    at Mono.CompilerServices.SymbolWriter.MonoSymbolWriter.WriteSymbolFile(Guid guid) in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/mcs/class/Mono.CompilerServices.SymbolWriter/MonoSymbolWriter.cs:line 233
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1796,2): warning :    at Pdb2Mdb.Converter.Convert(AssemblyDefinition assembly, IEnumerable`1 functions, MonoSymbolWriter mdb)
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1796,2): warning :    at Pdb2Mdb.Converter.Convert(String filename)
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1796,2): warning :    at Xamarin.Android.Tasks.ConvertDebuggingFiles.RunTask()
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1842,3): warning : Failed to read 'C:\Git\myApp\myApp\myApp.Droid\bin\Debug\myApp.dll' with debugging symbols. Retrying to load it without it. Error details are logged below.
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1842,3): warning : Mono.Cecil.Cil.SymbolsNotFoundException: No symbol found for file: C:\Git\myApp\myApp\myApp.Droid\bin\Debug\myApp.dll
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1842,3): warning :    at Mono.Cecil.Cil.DefaultSymbolReaderProvider.GetSymbolReader(ModuleDefinition module, String fileName) in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/cecil/Mono.Cecil.Cil/Symbols.cs:line 851
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1842,3): warning :    at Mono.Cecil.ModuleReader.ReadSymbols(ModuleDefinition module, ReaderParameters parameters) in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/cecil/Mono.Cecil/AssemblyReader.cs:line 100
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1842,3): warning :    at Mono.Cecil.ModuleReader.CreateModule(Image image, ReaderParameters parameters) in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/cecil/Mono.Cecil/AssemblyReader.cs:line 82
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1842,3): warning :    at Mono.Cecil.ModuleDefinition.ReadModule(String fileName, ReaderParameters parameters) in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/cecil/Mono.Cecil/ModuleDefinition.cs:line 1118
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1842,3): warning :    at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.ReadAssembly(String file) in /Users/builder/azdo/_work/204/s/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:line 149
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2049,3): error AMM0000: C:\Git\myApp\myApp\myApp.Droid\obj\Debug\100\AndroidManifest.xml:62:55-83 Error:
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2049,3): error AMM0000:     Attribute service#com.onesignal.SyncService@stopWithTask value=(false) from AndroidManifest.xml:62:55-83
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2049,3): error AMM0000:     is also present at AndroidManifest.xml:81:13-40 value=(true).
7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2049,3): error AMM0000:     Suggestion: add 'tools:replace="android:stopWithTask"' to <service> element at AndroidManifest.xml:62:5-86 to override.

This is my Manifest implementation

error indicates the line with PermissionsActivity. similar error i had for facebookActivity but removing android:theme="@android:style/Theme.Translucent.NoTitleBar" fixed. It doesnt fix for com.onesignal.PermissionsActivity


        <meta-data android:name="com.onesignal.NotificationAccentColor.DEFAULT" android:value="#2196F3" />
        <receiver android:name="com.onesignal.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
    <receiver android:name="com.onesignal.NotificationOpenedReceiver" />
        <service android:name="com.onesignal.GcmIntentService" />
        <service android:name="com.onesignal.SyncService" android:stopWithTask="false" />
        <activity android:name="com.onesignal.PermissionsActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
mattleibow commented 4 years ago

Might be related to this as well: https://github.com/xamarin/xamarin-android/issues/4856

Seems to be because the Support libraries are old. The best thing would be to check for downgrades and make sure all the support is v28.0.0.3+

EmilAlipiev commented 4 years ago

@mattleibow thanks for the info but my support libraries are 28.0.0.3. i have recognized that i didnt remove all the support libraries which i dont need. After removing Xamarin.Android.Support.V4 from the project, it is compiling without error. Now it makes more confused because even latest 3.9.0 doesnt support AndroidX libraries yet as shown in the screenshot below. How does it compile if I uninstall Xamarin.Android.Support.V4.

image

mattleibow commented 4 years ago

Support v4 might be pulled in by another library somehow. I think Xamarin.Forms depends on AppCompat which depends on v4.

But since I didn't read your issue properly, the error says there is an issue with the manifest line

<service android:name="com.onesignal.SyncService" android:stopWithTask="false" />

Basically, duplicate entries I think... But with different android:stopWithTask="false" values. Did you add something to your manifest manually? If you check the obj/Debug/90/android/AndroidManifest.xml, is there duplicate values?

EmilAlipiev commented 4 years ago

I havent done any change on a working AndroidManifest but just chosed to "migrate to AndroidX" and then installed suggested AndroidX libraries manually and build was causing those errors. Error is removed now after uninstalling Support V4 and Support Custom Tabs and I have just tested onesignal on Android. Everything works fine as usual. Not sure if it was conflicting with AndroidX libraries. Anyhow I am closing this issue now :) Thank you for your help.