Notice (2018-05-24): bugzilla.xamarin.com is now in
Please join us on
Visual Studio Developer Community and in the
Mono organizations on
GitHub to continue tracking issues. Bugzilla will remain
available for reference in read-only mode. We will continue to work
on open Bugzilla bugs, copy them to the new locations
as needed for follow-up, and add the new items under Related
Our sincere thanks to everyone who has contributed on this bug
tracker over the years. Thanks also for your understanding as we
make these adjustments and improvements for the future.
Please create a new report for Bug 43553 on
Developer Community or GitHub if you have new
information to add and do not yet see a matching new report.
If the latest results still closely match this report, you can use the
In special cases on GitHub you might also want the comments:
GitHub Markdown with public comments
Created attachment 17134 [details]
Example diagnostic MSBuild output
Using "Run Code Analysis" on Android Class Library hits ""GenerateJavaStubs" task failed unexpectedly ... Sequence contains no elements" unless the library includes a subclass of `Activity`
This bug is related to Bug 43548, but that bug discusses the error message in the context of the normal build and deploy process for Android _application projects_. In this second bug, the problem instead occurs under the more "special" condition of using the "Run Code Analysis" feature on Android _class libraries_.
It looks like the problem in this scenario is that setting the `RunCodeAnalysis` MSBuild property to `true` causes some additional targets to run that are not part of the normal build steps for Android class libraries. It seems that some of those additional targets are only compatible with Android _application projects_ and should not ever be run for _class libraries_, regardless of whether `RunCodeAnalysis` is set to `true` or not.
## Steps to replicate (on Mac in this example)
1. Create a new "Android > Library > Class Library" in Xamarin Studio.
2. Select "Project > Run Code Analysis on $(MSBuildProjectName)"
- Or build the project on the command line with `RunCodeAnalysis` set to `true`:
xbuild /p:Configuration=Debug /p:RunCodeAnalysis=true AndroidClassLibrary1/AndroidClassLibrary1.csproj
## One additional experiment
Another way to replicate the error (though it might be "somewhat invalid") is to try to run the `SignAndroidPackage` target on the class library:
xbuild /p:Configuration=Debug /t:SignAndroidPackage AndroidClassLibrary1/AndroidClassLibrary1.csproj
## "Hacky" workaround
One way to work around the problem is to add an empty Activity subclass to the class library so that the class library can "pretend" to be a full Android application project:
[Activity(MainLauncher = true)]
public class MainActivity : Activity
## BAD Results
The build fails with the same error as Bug 43548. Presumably this is because the build process is being "tricked into thinking" that it's building an application project. Of course Android class libraries should _not_ be required to contain an `Activity` subclass, so the build failure is not appropriate in this scenario.
> /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets: error : Error executing task GenerateJavaStubs: Sequence contains no elements
> Error executing task GenerateJavaStubs: System.InvalidOperationException: Sequence contains no elements
> at System.Linq.Enumerable.Max (System.Collections.Generic.IEnumerable`1[T] source) [0x0006a] in <4a648327db854c86ab0ece073e38f4b3>:0
> at System.Linq.Enumerable.Max[TSource] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] selector) [0x00007] in <4a648327db854c86ab0ece073e38f4b3>:0
> at Java.Interop.Tools.JavaCallableWrappers.TypeNameMapGenerator.WriteBinaryMapping (System.IO.Stream o, System.Collections.Generic.Dictionary`2[TKey,TValue] mapping) [0x00015] in <3bec6a0f8b3945ab8cd1742c43134d59>:0
> at Java.Interop.Tools.JavaCallableWrappers.TypeNameMapGenerator.WriteJavaToManaged (System.IO.Stream output) [0x00070] in <3bec6a0f8b3945ab8cd1742c43134d59>:0
> at Xamarin.Android.Tasks.GenerateJavaStubs.UpdateWhenChanged (System.String path, System.Action`1[T] generator) [0x00014] in <7b8cf0a088cb4e499a73d931c1c995f9>:0
> at Xamarin.Android.Tasks.GenerateJavaStubs.WriteTypeMappings (System.Collections.Generic.List`1[T] types) [0x00078] in <7b8cf0a088cb4e499a73d931c1c995f9>:0
> at Xamarin.Android.Tasks.GenerateJavaStubs.Run () [0x0016e] in <7b8cf0a088cb4e499a73d931c1c995f9>:0
> at Xamarin.Android.Tasks.GenerateJavaStubs.Execute () [0x001d8] in <7b8cf0a088cb4e499a73d931c1c995f9>:0
> at Microsoft.Build.BuildEngine.TaskEngine.Execute () [0x00000] in <b1524340ac7e4c06b22fac1b2db62c08>:0
> at Microsoft.Build.BuildEngine.BuildTask.Execute () [0x0008f] in <b1524340ac7e4c06b22fac1b2db62c08>:0
## Regression status: bug in a new feature
### BAD results in Cycle 6
Dating back to Cycle 6, Xamarin.Android includes 2 `.targets` files that mention `RunCodeAnalysis`:
The _exact_ error message that occurs for this problem has admittedly changed a bit since the first Cycle 6 versions, but I think the core problem (running inappropriate targets when `RunCodeAnalysis` is `true`) has probably been the same all along.
BAD: Xamarin.Android 188.8.131.52 (Cycle 8 Beta 1)
BAD: Xamarin.Android 184.108.40.206 (Cycle 6)
### `RunCodeAnalysis` is probably ignored in "Cycle 5 – Service Release 5" and earlier
Xamarin.Android 220.127.116.11 (Cycle 5 – Service Release 5) includes _no_ `.targets` files that mention `RunCodeAnalysis`, so I suspect that the `RunCodeAnalysis` MSBuild property is simply ignored in that version (and most likely all earlier versions too).
## Additional version info (brief)
Xamarin Studio Version 6.1 (build 5345)
Mono 4.6.0 (mono-4.6.0-branch/d0fc1a6) (64-bit)
OS X 10.11.6
Created attachment 17135 [details]
Detailed version information
*** Bug 43537 has been marked as a duplicate of this bug. ***
Is there any update on a fix for this issue? Still experiencing it it Visual Studio 2017 with Xamarin for Visual Studio 4.3.795 and Xamarin.Android 18.104.22.168