id | title |
---|---|
47FA9AD3-5CA3-41B7-8ADA-B34B79261020 |
Xamarin.Android 5.1 |
The Xamarin.Android 5.1 series provides improved support for Android Wear apps.
Note: Xamarin.Android 5.1 requires JDK 1.7 to use Android Wear and API-21. JDK 1.6 may be used when targeting previous API levels.
# Xamarin.Android 5.1.7Xamarin.Android 5.1.7 adds support for [Android 6.0 Marshmallow (API-23)][api-23].
Please see the separate Xamarin.Android 5.1.7 release notes for API diffs.
# Xamarin.Android 5.1.6Xamarin.Android 5.1.6 improves reliability and stability.
- 31705: Embedded resources are not being fast deployed from the IDE in XA 5.1.4+
- 32025: Android library assets in subfolders not added to apk.
- 33554: monodroid error XA0000: Reason: An element with the same key already exists in the dictionary
Xamarin.Android uses Mono 4.0 commit 5ab4c0d0.
- 28777:
GZipStream
(DeflateStreamNative
) native exception afterFlush()
with no buffer data: Internal error (no progress possible) Flush - 30043:
Disposing a
FileSystemWatcher
object causesArgumentOutOfRangeException
- 30868:
ObjectDisposedException
in mono 4.0.1.28, but not mono 3.12.1 - 30869:
HttpClient
authentication not working
Xamarin.Android 5.1.5 improves reliability and stability, and adds bindings for Android v5.1 (API-22).
- 28114:
Fatal signal 6 (SIGABRT) if
Keyboard.CreateKeyFromXml()
is overriden. - 28721: aapt error item with same key
- 29571:
Custom
[Preserve]
attribute only works under theAndroid.Runtime
namespace on Android - 30823: Aot task fails when the linker is disabled
- 31527:
Unable to load file or assembly
System.Runtime
in project with both shared runtime and Link SDK enabled. - 31597: Xamarin.Android Breakpoints in certain projects no longer work after upgrading to 5.1.4.
Xamarin.Android uses Mono 4.0 commit 5f447f9d.
- 26205:
System.IO.Package.LoadRelationships
throwsNullReferenceException
for some NuGet packages with PCLs generated on Windows.
Xamarin.Android 5.1.4 improves reliability and stability.
- Various AOT-related fixes.
- 29130:
Fix loading of
libmonosgen-2.0.so
when loading the shared runtime within a Release build. - 29939:
Fix build error when building android application which references a file
with an UPPER_CASE letter in
styles.xml
. - 30318, Xamarin.Android Breakpoints in Forms PCL project do not work after cleaning solution, redeploying, and restarting debugging.
- 30670,
30827:
Support binding Java libraries with package names that end in
.system
. - 30823: Support AOT compilation when linking is disabled.
Xamarin.Android uses Mono 4.0 commit 046a4260.
-
Fixes
TimeZoneInfo.IsDaylightSavingTime
returningfalse
whenTimeZoneInfo.SupportsDaylightSavingTime
was set to false because theTimeZoneInfo
was created with noAdjustmentRules
. -
28747: Nexus 9 sample apps crashing on launch.
-
28961: Avoid duplicate plt symbols for plt entries for synchronized methods.
-
29935: XAttribute.ToString() outputs wrong result if attribute contains namespace.
Xamarin.Android 5.1.3 improves compatibility with the latest Android SDK
Build-tools 23.0.0_rc1
and the Android-M preview.
- 30653,
30555,
30562:
Check for new Build-tools
23.0.0_rc1
location ofaapt
. - 30566:
Creating
Java.Lang.String
instances on the Android-M preview results in anUnsupportedOperationException: Use StringFactory instead
. (Related Android bug)
Xamarin.Android uses Mono 4.0 commit ed1d3ec5.
- 29667: Mono v4.0 crashes after a while.
- 30171:
BinaryReader.ReadChar()
returns incorrect result on 8.10
Xamarin.Android 5.1.2 contains stability fixes.
- Improve legacy type name fixing within
AndroidManifest.xml
. - 28198:
LinkAssemblies
task failed with aNotImplementedException
. - 29263:
android.view.InflateException
when defining a custom preference . - 29568: Android 5.1 AppCompat 22.1.1 unable to find theme resources.
Xamarin.Android uses Mono 4.0 commit d7f9ffaa.
- 26998:
Issue with
DataContractJsonSerializer
. - 29039:
CultureInfo.GetCultures(CultureTypes.SpecificCultures)
returns brokenar-SA
culture. - 29177: Check SP on thread suspend correctly.
Xamarin.Android 5.1.1 is a hotfix release to fix operations on System.Decimal
.
Xamarin.Android uses Mono 4.0 commit d5e006eb.
- 29570:
decimal
comparisons look to be broken.
- Simpler Android Wear support.
- 64-bit runtime support.
- System app support.
- Proguard support.
- Multi-Dex support.
- GC-free method invocations.
- AppDomain.UnhandledException event raised for Java exceptions
- OpenGLES 3.1 Support
- New tool,
logcat-parse
, for investigating GREF use. - F# bumped to 3.1.1.31.
- New
$(JavacTargetVersion)
and$(JavacSourceVersion)
MSBuild properties can control thejavac -target
andjavac -source
values. - New
debug.mono.max_grefc
system property, allows overriding the default detected maximum GREF count value.
Previously, Android Wear apps were supported, but required lots of extra manual intervention in order to follow the Android Wear app structure and the manual packaging instructions:
- Ensure that your Wearable project and Handheld projects had the same version number and package name.
- Manually build the Wearable project as a Release build
- Manually add (2) into the
Resources\raw
directory of the Handheld project. - Manually write an XML blob within the Handheld project which refers to (3).
- Manually add a
<meta-data/>
element to the Handheld project'sAndroidManifest.xml
.
Starting in Xamarin.Android 5.0, there is a new, simpler, workflow:
- Add the Wear project as a Project Reference to the Handheld project.
This will automatically package the Wear app and include it as a resource when building the Handheld project.
The package name of the Wear project and the Handheld project must have the
same package name. If they don't, then an XA5304
error will be reported.
Many customers have requested that Xamarin.Android be usable as "system apps" on custom AOSP builds. This should now be supported.
Proguard is used to link Java bytecode, allowing .apk
files
to be smaller.
Proguard support can be enabled by using the new $(EnableProguard)
MSBuild property, which is also available via Visual Studio and Xamarin Studio.
Additionally, a new @(ProguardConfiguration)
Build action has been added.
Files with a Build action of @(ProguardConfiguration)
are used as values to
the proguard -include
option.
The contents of a @(ProguardConfiguration)
file contain additional
proguard options.
Android apps may have at most 65k methods within the .apk
.
Multi-dex is a way to increase this method limit.
Multi-dex support can be enabled by using the new $(AndroidEnableMultiDex)
MSBuild property, which is also available via Visual Studio and Xamarin Studio.
In previous versions of Xamarin.Android, when invoking Java methods that had
one or more parameters, a JNIEnv
method would be invoked with a
params JValue[]
parameter. This resulted in array allocations on every such
method invocation, increasing GC allocations and memory pressure.
Starting with Xamarin.Android 5.1, there are new JNIEnv
method overloads
which instead take a JValue*
(unsafe pointer), and the bindings have been
updated to make use of the new overloads instead of using the previous
params JValue[]
overload.
Existing Java library bindings must be rebuilt to make use of the new methods, and Java library bindings built against Xamarin.Android 5.1 will not be usable in previous versions.
In previous versions of Xamarin.Android, the AppDomain.UnhandledException
event would only be raised for exceptions thrown from managed code, and not
for unhandled Java exceptions thrown on Java threads.
Starting with Xamarin.Android 5.1, the AppDomain.UnhandledException
event
should be raised for any and all unhandled exceptions, whether raised from
managed code or from Java code.
Xamarin.Android 5.1 introduces several experimental features:
Xamarin.Android now provides runtimes for arm64-v8a
and x86_64
. This allows
Xamarin.Android apps to run as 64-bit apps on supported hardware.
Note: 64-bit runtimes are not required in order to run on 64-bit hardware. 64-bit devices such as the Nexus 9 are capable of running 32-bit processes as well. 64-bit runtimes merely allow the process to access more memory, as long as Android grants access to it.
Xamarin.Android now supports Ahead-of-Time (AOT) compilation of assemblies, allowing some JIT overhead to be avoided. This can result in shorter startup times, at the cost of increased .apk sizes.
AOT may be enabled by using the new $(AotAssemblies)
MSBuild property,
and the LLVM Optimizing Compiler may be used by enabling the new $(EnableLLVM)
MSBuild property,
both of which will be available via Visual Studio and Xamarin Studio.
TODO: Table comparing startup times, .apk sizes.
Unfortunately, AOT support is experimental at the moment:
- LLVM can't be used when building for
x86_64
, because of an Android NDK bug. - AOT and AOT+LLVM on
x86
are known to be unstable. - AOT+LLVM on
arm64-v8a
is known to be unstable.
There are several changes which may alter the development workflow in this release.
- Change
minSdkVersion
Default Value. - Cross-VM Exception Propagation.
JNIEnv.NewObjectArray()
Array Type.ApplicationInfo.nativeLibraryDir
Use.- GREF Logging Changes.
The default //uses-sdk/@android:minSdkVersion
value within AndroidManifest.xml
in previous releases defaulted to $(TargetFrameworkVersion)
.
It now defaults to API-11 unless $(TargetFrameworkVersion)
is v2.3
, in which
case it's API-10.
This change should make it easier to create new projects and deploy them to "older" devices without first visiting Project Options.
Note: The default minSdkVersion
may change in the future with minimal
or no notice. API-11 was chosen because that was the minimum required to make
Activity.ActionBar
not return null
(it's value depends upon minSdkVersion
). If we find other
Android functionality which is dependent upon minSdkVersion
, we may bump
minSdkVersion
higher so that default projects may more easily make use of it.
Exceptions which cross VM boundaries now participate in Java stack unwinding. Behavior of unhandled C# exceptions within the debugger is now different; if an unhandled exception is reported -- and it may not be when thrown from the UI thread -- then the debugger will "break" on the last entry into managed code, not from where the exception was originally thrown.
The previous behavior may be enabled by exporting the
XA_BROKEN_EXCEPTION_TRANSITIONS
environment variable with the value
true
.
JNIEnv.NewObjectArray<T>(T[])
now consistently generates a Java array
based on typeof(T)
, instead of probing the runtime type of the first
non-null
value within the provided array.
Previously, native libraries were assumed to be in
ApplicationInfo.dataDir + "/lib"
...
because that was the only thing that would work on API-4.
Unfortunately, that logic no longer works for 64-bit platforms, as native
libraries for 64-bit platforms are in a different (variable) location.
64-bit runtime support instead requires searching for native libraries
within the directory stored in
ApplicationInfo.nativeLibraryDir
.
To support 64-bit runtimes, when AndroidManifest.xml
contains a //uses-sdk
element with an android:minSdkVersion
attribute value that is 10 or later,
then native libraries will instead be searched within
ApplicationInfo.nativeLibraryDir
. If the android:minSdkVersion
attribute
value is less than 10, then the previous behavior will be used.
As a consequence of this, it is not possible for applications to contain
both an android:minSdkVersion
value that is less than 10 and
provide 64-bit runtime support.
It was recently discovered that adb logcat
on Android 5.0 Lollipop will
drop messages if "too many" are written. (Previously, adb logcat
was
documented as using a ring buffer, which would cause the oldest messages
to be dropped if "too many" are written. What we've observed is that recent
messages will be dropped on Lollipop, not the oldest.)
As a result of this, JNI Global Reference (GREF) logging is nearly worthless when running on Lollipop, as important GREF handle lifetime messages may be lost, resulting in loss of hair and sanity as JNI handle values "appear out of nowhere".
To address this, GREF logging is changing with Xamarin.Android 5.1. It is
still enabled via the debug.mono.log
system property
(e.g. adb shell setprop debug.mono.log gref
), but now when it's
enabled there are two changes of note:
adb logcat
messages will not contain full stack traces. These messages will only be useful at providing a "current" value of the number of GREFs which exist as the app runs, and not analysis.- Full JNI handle information will now be written to the package's
files/.__override__/grefs.txt
file.
Once the app is running or has finished running (after closing the app or a crash), GREF information may be copied via:
adb shell run-as @PACKAGE_NAME@ cat files/.__override__/grefs.txt
in which @PACKAGE_NAME@
is the package name of the app.
The debug.mono.log
system property may also contain a path name for where
the GREF logging information should be written:
adb shell setprop debug.mono.log gref=/path/to/grefs.txt
Note: To perform the above adb shell run-as
command, the app must also be
debuggable.
Debug configuration builds are debuggable by default; Release builds are not.
If a Release build needs to log GREF and provide information, it can be made
debuggable by doing one of the following:
-
Edit
Properties\AndroidManifest.xml
and edit the<application/>
element to add the attribute content:android:debuggable="true"
-
Edit
Properties\AssemblyInfo.cs
and add the following custom attribute:[assembly: Application (Debuggable=true)]
Note: grefs.txt
can get very large, and may consume lots of disk space
on the target device.
Note: grefs.txt
is deleted on app startup.
There are several breaking changes in this release, many of which have been
hinted at previously via [Obsolete]
messages, some of which are semantic
changes which won't break compilation but may affect runtime behavior.
- Removal Of Property Setters for
final
Fields. - Removal of API Levels.
- Removal of Obsolete Assemblies.
- Android Callable Wrapper Naming.
Property setters are no longer generated for Java final
fields.
(This accounts for most of changes in the API Changes, below.)
The property setters were present due to oversight, and should not
have been used.
Binding assemblies for Android v1.6 (API-4), Android v2.1 (API-7), Android v2.2 (API-8), Android v3.1 (API-12), and Android v4.0 (API-14) has been dropped.
Xamarin.Android applications can still run on these platforms, but the compiler will no longer assist you in ensuring that types and members which do not exist in those API levels are not referenced.
### Removal of Obsolete AssembliesThe Mono.Android.GoogleMaps.dll
, Mono.Android.Support.v4.dll
,
and Mono.Android.Support.v13.dll
assemblies have been removed.
(All types in these assemblies were obsoleted in
Xamarin.Android 4.14)
Please migrate to the corresponding Xamarin Components:
Mono.Android.GoogleMaps
: Please use the Google Play Services component.Mono.Android.Support.v4.dll
: Please use the Android Support Library v4 component.Mono.Android.Support.v13.dll
: Please use the Android Support Library v13 component.
With the 5.0 release, the default package names for Android Callable Wrappers will be based on the MD5SUM of the assembly-qualified name of the type being exported. This allows the same fully-qualified name to be provided from two different assemblies and not get a packaging error.
This change can cause compatibility problems. For example, if you have a script which relies on the Android Callable Wrapper name:
adb shell am start -n My.Package.Name/my.ActivityType
Such a script will fail because the type my.ActivityType
will no longer
be generated (by default).
I strongly recommend that you do not update such scripts to use the new generated type name, as the new name names are ugly.
Instead, I would suggest that you use RegisterAttribute, BroadcastReceiverAttribute.Name, ContentProviderAttribute.Name, ActivityAttribute.Name, ApplicationAttribute.Name, or ServiceAttribute.Name.
For example, if you previously had:
namespace My {
[Activity]
public partial class ActivityType : Activity {
/* ... */
}
}
Then to maintain compatibility with your scripts/external code, set the
ActivityAttribute.Name
property:
namespace My {
[Activity(Name="my.ActivityType")]
public partial class ActivityType : Activity {
/* ... */
}
}
For a more complete example, this change was responsible for
causing the ApiDemo
sample to crash on startup
because
ApiDemo
used //activity/@android:name
instead of the [Activity] custom attribute
in several locations, and in Xamarin.Android 5.0 this resulted in an
"inconsistency" between AndroidManifest.xml
and the actual Java files.
The fix for ApiDemo
involves using ActivityAttribute.Name
and removing the XML fragments
from AndroidManifest.xml
, as deemed appropriate.
To assist with the transition, AndroidManifest.xml
will be checked
for references to previously generated type names and all such references
will be automatically fixed up to use the new convention. This only affects
the contents of AndroidManifest.xml
.
- Numerious MSBuild target cleanup and improvements
- Fix
System.Linq.Expressions
linking - Add
Android.App.ActivityAttribute.Immersive
property value, which sets the//activity/@android:immersive
attribute value. - Generate XA0101 warning if the
@(Content)
Build action is used, as the@(Content)
Build action can't be supported. - Improve display of
aapt
errors within the IDE errors panel. - 2461
The
AppDomain.UnhandledException
event doesn't work. - 7634: Managed > Java > Managed Exception Propoagation is broken.
- 8470: Support Deploying to Android 4.2+ with non-admin current user.
- 10268: Linker issue with horizontallistview project in release mode.
- 11270: Linker failure.
- 12935:
sensorPortrait
should besensorPortait
on API < 16 - 13154:
Display SHA1 fingerprint of the keystore that was used to sign an
.apk
. - 15205#c1, 16826, 21147:
Support same namespace+type in separate assemblies for
Java.Lang.Object
subclasses. - 16409:
Fix
InvalidOperationException
fromAndroidEnvironment._Proxy.Credentials
property. - 16805:
Allow
<fragment class="...">
to contain assembly-qualified type names. - 16826: ACWs: Create unique package names instead of lowercasing the namespace.
- 17257:
NoSuchMethodError
when usingTreeViewObserver.GlobalLayout
on targets before API level 16. - 17313:
Properly generate
XPath method reference
comments within generated bindings code. - 19391:
[Preserve(AllMembers=true)]
not working when[DataContract]
is after it. - 21034:
mandroid
generatesXA0000
forOut of memory
. - 21159:
Incorrect
super()
constructor invocation generated in Android Callable Wrappers forAndroid.Graphics.Canvas
subclasses. - 21361: Attribute name has already been defined, when having attributes defined in a Android Class Library and using Android Binding component
- 21578:
System.Net.Sockets.Socket.SetSocketOption
removed by the linker. - 22155:
Fix
jar2xml
to properly emit generic type constraints. - 22218: [generator] Parameter marshaling is not exception-safe.
- 22670: Build warnings after referencing Microsoft.Net.Http NuGet package in Xamarin.Android app project.
- 22912:
DateTime.Now
givesNullReferenceException
in otherAppDomain
s. - 22955: Basic DateTime calcutions are now throwing exceptions.
- 22959:
javac
generatesno suitable constructor found for RuntimeException(String,Throwable,boolean,boolean)
message when inheriting fromJava.Lang.RuntimeException
. - 22962:
@deprecated
annotations aren't mapped to C#'s[Obsolete]
attribute. - 22968: Crash when lazy loading assemblies.
- 23077: Wrap DriveInfo to StatFs.
- 23405:
DateTime.Now
returns time off by 1 hour - 23564:
Setting
WindowSoftInputMode
toSoftInput.AdjustNothing
onActivity
generates an out of range exception on compilation. - 23617: Can't build in Release mode: Error executing task GenerateJavaStubs: Could not load assembly 'Xamarin.Android.Support.v4'
- 23950:
TimeZone.CurrentTimeZone.GetDaylightChanges()
contains the wrong End value for AEDT. - 23990: Error when building a project with a TargetFramework < v2.3 should be improved and standardized.
- 24086:
Fix
TimeZoneInfo
transitions for Asia/Amman. - 24193:
generator
generates a.JavaCast<byte[]>()
expression, which doesn't compile. - 24206:
"Access to the path
...\obj\Debug\__library_projects__\...\library_project_imports\assets\...
is denied" when asset files in class library are marked as read-only - 24405:
org.apache.http.impl.auth.BasicScheme
not bound. - 24497: Certain APIs break linking due to inter-API-level differences.
- 24612: Referencing a library project's resources with upper case letters in filenames does not work.
- 24809: Add support for manifest merging when using Android libraries.
- 24820: Make temp files for Xamarin.Android that are automatically cleaned.
- 24947: Current TimeZone is not updated after the system timezone is changed by a java call.
- 25022: License fails if no network connection.
- 25157: SierpinskiTetrahedron sample doesn't appear and has loop of output on some devices.
- 25443#c8:
Don't call
JNIEnv::GetObjectRefType()
with aNULL
JNI handle, to avoid an Android bug. - 25508:
android.net.wifi.WifiConfiguration.status
not bound. - 25990: JIT Crash on Lollipop with SIGSEGV error because Android Callable Wrapper static constructor executed from unregistered thread.
- 26074:
InvalidCastException
fromJNIEnv.GetArray<Java.Lang.Object>(byteArrayArray)
. - 26617:
Android.Graphics.Color.Green
isn't really green. - 26864: Preserve type reference targets within custom attributes for linking.
- 27408:
Crash in
SynchronizationContext.Post()
. - 28781: PCL MDB files are not generated and PCL breakpoints don't work.
Xamarin.Android uses Mono 4.0 commit fe127993.
- 1849:
TimeZoneInfo.ConvertTime()
gives wrong result when converting from UTC to UTC. - 1852:
XmlSerialization ignores
ShouldSerialize*
and*Specified
- 6512: Don't parse JSON when using GET
- 7716: Cannot validate signed XML generated on Windows in Linux, and vice versa.
- 14277: Stepping in static constructor exits.
- 17944:
mini-amd64.c:492: amd64_patch: Assertion
0' failed.` with jagged array ctors which create an array of arrays. - 18422:
HttpClient
doesn't support 'name[]' header field name format - 18800:
IndexOutOfRangeException
whenMultipartFormDataContent
filename value contains whitespace. - 19012:
XmlArrayItemAttribute.IsNullable
default does not match MS.NET default. - 19039:
Runtime crashes when evaluating
FieldInfo.MetadataToken
in Dynamic Assembly. - 19334:
Failure at
System.Net.Sockets.NetworkStream.BeginWrite()
. - 19823:
InvalidOperationException
inServicePoint.RemoveConnectionGroup()
. - 19881:
ProductInfoHeaderValue
fails to parse User-Agent string without version - 20403:
InvalidOperationException
when XML-serializingSystem.Drawing.Color
- 20764:
WebMessageFormatter
crashes withvoid
return typeOperationContract
- 21072:
DataContractSerializer
does not serialize enum flags the same as .net 4. - 21135:
Deadlock in
WebConnectionStream
. - 21172:
text field type
nvarchar(max)
is truncated to 4000 chars. - 21571:
Uri.GetComponents()
should allowUriComponents.SerializationInfoString
on relativeUri
- 21653:
App crashed attempting to debug: Assertion,
mono_error_ok (&error)
not met. - 22212:
Error parsing
DateTime
string in New Zealand Culture. - 22383:
HttpClient
'sRequestMessage.RequestUri.AbsoluteUri
don't automatically point to right ones on 302 - 22417:
DateTime.Parse()
does not correctly recognize the date with correct format - 22557:
HttpValueCollection
does not properly url encode values inToString()
method - 22558:
DateTimeOffset.Parse()
can't handle the dateTime string without time part. - 22591:
Default
BigInteger
causes exceptions and incorrect answers - 22685:
Assertion at mini.c:4656, condition
cfg->code_size - cfg->epilog_begin < 0xffff
not met - 22704:
ClientWebSocket
cannot handle reading subsets of the payload - 22764:
HTTP POST ContentType is null instead of one sent by client in case of
MultipartFormDataContent
- 22775:
Flawed implementation of
BlockingCollection(T).AddToAny
- Only blocks on first collection - 22851:
DateTimeOffset.Parse()
doesn't handle RFC1123 formatted timestamps correctly - 22857:
DirectoryInfo.EnumerateFileSystemInfos()
withSearchOption.AllDirectories
does not return all subdirectories - 23021: Calls from generic shared methods not always patched.
- 23077:
Wrap
DriveInfo
toStatFs
. - 23206: Microsoft allows threadpool threads to be renamed multiple times
- 23242:
Null reference exception occurs after the call to
int.ToString()
from multiple threads - 23318:
XComment
throws an exception with some inputs - 23376:
TimeSpan
returns incorrect result. - 23392:
Assertion at mini-codegen.c:2307, condition
sp < 8
not met - 23423:
SIGABRT and crash in
System.Diagnostics.Process
- 23438: ECMA-335 Type layout attributes and atomic operations: a generic type shall not have explicit layout
- 23594:
A task will not complete if an exception is thrown in an attached child task with a task continuation that specifies
TaskContinuationOptions.NotOnFaulted
- 23700:
App using
SocketAsyncEventArgs
sometimes crash withObjectDisposedException
, stacktrace starts inDispatcherCB
- 23769:
Getting
NotSupportedException
s when performing reflection on generic types defined in dynamic assemblies - 24109:
SoundPlayer
corrupts memory, leading to crashes - 24221: Sorting of large structs with wrong result.
- 24340: Some WebSocket unit tests (System) fails silently
- 22346:
Fixed
DeflateStream
native error when handling empty input. - 22501:
XmlSchema.Read()
raisesInvalidElementError
for certain inputs which work fine in MS.NET - 22775:
BlockingCollection<T>.AddToAny()
only blocks on first collection. - 22968: Crash when lazy loading assemblies.
- 23058:
DataContractJsonSerializer
- Deserialize type incorrect on iOS. - 23242:
NullReferenceException
occurs after the call toint.ToString()
from multiple threads - 23401: Sgen's marksweep-conc fails under load test.
- 23423:
SIGABRT
and crash inSystem.Diagnostics.Process
- 23594:
A task will not complete if an exception is thrown in an attached child task with
a task continuation that specifies
TaskContinuationOptions.NotOnFaulted
- 23769:
Getting
NotSupportedException
s when performing reflection on generic types defined in dynamic assemblies - 23771:
UTF8 Decoder's
Convert()
does not keep internal state between calls when 'flush' parameter is false - 23808: HMACSHA256 default ctor creates 64-bit key, expected 64-byte.
- 23954: Missing checks for overlapping reference and non-reference fields.
- 23966:
HttpClient.GetStreamAsync()
behaves differently from .NET. - 24084:
sgen assert in
sgen_obj_get_descriptor()
when frequently allocating withFormatterServices.GetUninitializedObject()
- 24213:
ConcurrentBag.TryTake()
returns the same instance twice... - 24419: Synchronized static methods of generic classes lock on the open type instead of the closed one
- 24431:
CultureInfo
constructor error message decimal and hex lcid should be different. - 24577:
Fatal Unhandled Exсeption:
System.FormatException
- 24611:
System.Net.WebException
when using theFtpWebRequest
with non-ASCII characters in the URL. - 24704:
System.Net.Http.HttpClient.PostAsync()
ignores timeout if webproxy isn't accessible. - 24757:
LogicalCallContext
not flowing with async calls. - 24775:
List<T>.ForEach()
does not throwInvalidOperationException
when collection was modified. - 24891:
Parallel.ForEach()
overload always sets -1 as current element index. - 25059:
StructLayout.Pack
>= 16 throwsTypeLoadException
at runtime - 25087:
System.Uri
constructor throws an exception when parsing an HTTP URI with a username or password that contains certain escaped characters - 25132:
SafeHandle
always called withDispose(true)
. - 25158:
TypeDescriptor.GetConverter(typeof(DateTimeOffset))
do not returnDateTimeOffsetConverter
. - 25224: stack overflow after printfn something.
- 25498:
System.IO.SynchronizedStream
does not callClose
on wrappedStream
. - 25664:
FieldInfo.GetValue()
causes segmentation fault when field is of pointer type - 25679:
Memory leak and buffer overflow in
get_gsharedvt_type()
. - 25720:
Runtime crashing when evaluating
System.Diagnostics.Process.HasExited
property - 25808:
DataContractJsonSerializer
cannot deserialize array toIEnumerable<T>
. - 25850:
SafeHandle.Close()
is not idempotent. - 25895:
Wrong exception is thrown when calling
System.Globalization.CharUnicodeInfo.GetNumericValue(string s, int index)
with invalid index - 25928:
Barrier
constructed with 0 participants will hang onAddParticipant
. - 26008:
Wrong DST when
TimeZoneInfo
has floating date rules. - 26033:
Set next statement(
CMD_THREAD_SET_IP
) + stepping doesn't work as expected - 26109:
System.Net.Http.Headers.RangeHeaderValue
fails to parse with large byte range - 26127:
SafeHandle
types + Delegates +Marshal.GetDelegateForFunctionPointer()
== Possible crash - 26312:
webClient.UploadFile(ftpPath, filePath)
adds some header information to the uploaded file.. - 26412:
ConstructorInfo.ContainsGenericParameters
behaves differently to MS.NET - 27010:
Difference in
Assembly.GetExportedTypes()
with .NET - 27036:
Adding the user-agent header to
HttpClient
object throws aSystem.FormatException: Invalid format
. - 27086:
Writing in asynchronous
FileStream
adds 0 bytes at the beginning of the file. - 27352:
HttpRequestMessage
: adding Accept header with multiple values fails - 27386:
HttpClient
doesn't honorBaseAddress
with theGet*Async()
methods. - 27697:
Debugger crash: error:
* Assertion at ../../../../../mono/mono/mini/debugger-agent.c:2475, condition `tls' not met
- 28331: Custom Attributes incompatability
- 28383:
Marshal.AllocCoTaskMem(0)
incorrectly returnsIntPtr.Zero
.
- API Level 10: Mono.Android.dll, OpenTK.dll, OpenTK-1.0.dll
- API Level 15: Mono.Android.dll
- API Level 16: Mono.Android.dll
- API Level 17: Mono.Android.dll
- API Level 18: Mono.Android.dll
- API Level 19: Mono.Android.dll
- API Level 20: Mono.Android.dll
- API Level 21: Mono.Android.dll