Hi Jeremy,

Unlike InputJar, ReferenceJars cannot be "embedded" - honestly I never thought about scenarios where ReferenceJars are widely required among many projects. If there are not a small need for that feature, we will consider implementing something like "EmbeddedReferenceJar" for that.
Thanks for the feedback as usual!

Atsushi Eno

Jeremy A. Kolb - ARA/NED wrote:
What about reference jars?  If A library project depends on 3 jars + and input 
jar do we still have to copy the reference jars to the project that uses the 
library or are they packaged up too?

-----Original Message-----
From: monodroid-boun...@lists.ximian.com 
[mailto:monodroid-boun...@lists.ximian.com] On Behalf Of Atsushi Eno
Sent: Tuesday, October 23, 2012 11:05 AM
To: monodroid@lists.ximian.com
Subject: [mono-android] warning: with 4.2.8 you will have to remove 
android-support-v4.jar build item

Hello,

tl;dr: after updating to 4.2.8 preview, you might see a build breakage to your 
existing project that references Mono.Android.Support.v4.dll and contains 
android-support-v4.jar as AndroidJavaLibrary.
In that case, removing the AndroidJavaLibrary item is needed.

----
Starting from version 4.2.8, new "embedded jar" feature will allow us 
(everyone) to embed the jar into the binding dll, which will automatically add the jar to 
application package (as if we specified AndroidJavaLibrary). This should reduce 
complicated procedure to pass the library to both binding and app projects.

This won't happen unless you specify "EmbeddedJar" build action to binding jar 
file. You can still use InputJar. (Though starting from 4.2.8 it will be the default 
action for jar files in Jars directory.)

We applied this to our Mono.Android.Support.v4.dll so now it this dll embeds 
android-support-v4.jar.

This change however causes side effect; any project that has reference to older 
android-support-v4.jar will not build unless you remove it.

The reason is explained at bug #7946 but here I copy the entire text:
----
This is not a bug but explicitly designed behavior. We should NOT remove 
whatever users specified *arbitrarily*. That rather brings confusion to users 
and it should be always user who decide which to leave into app package and 
which to discard.

To make it clear, when the jars, one in the dll and others in app projects, are 
IDENTICAL (which means both have identical name
*and* identical content), they don't result in conflict. For any *other* cases, 
you should be *aware* that the jar is *inconsistent* with the actual jar which 
is being used in the application.

You are seeing the error message because you use *inconsistent*
support-v4 jar.

EmbeddedJar feature is not specific to Mono.Android.Support.v4.dll.
Any user bindings fall into the same *possibly conflicting* situation.
You will get furious if we arbitrarily determine that "your jar in the application 
is extraneous" while it might be *newer* (!) especially in such scenario like this: 
the application also uses newer jar as AndroidJavaLibrary to invoke new API feature, and 
it fails because we silently drop the newer jar due to this *wrong* assumption.

Of course there is no deterministic way to identify *which* library is actually 
newer, and there is no chance to actually use the application jar if you have 
to stick to the dll, which is not *always* true - users could use different 
binding dll.

We made the error message very clear to indicate what to do: you have to either 
alter the dll or remove the application jar (or any conflicting jar in other 
dll).

Hence the current behavior is the only way to assure valid jar packaging. 
Regardless of whether we embed the jar into the dll or not in this version, 
such possibly-mismatching jar-vs-dll issue could have happened, so canceling 
EmbedJar is worse choice.

Hope this explanation makes sense.

Atsushi Eno

_______________________________________________
Monodroid mailing list
Monodroid@lists.ximian.com

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid
_______________________________________________
Monodroid mailing list
Monodroid@lists.ximian.com

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid




_______________________________________________
Monodroid mailing list
Monodroid@lists.ximian.com

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid

Reply via email to