-
Notifications
You must be signed in to change notification settings - Fork 528
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix monodroid COMMON_CFLAGS usage and always build with RELEASE. #82
Conversation
The primary problem was that when app launches it tries to load assemblies: W/monodroid( 2061): Using override path: /data/data/com.xamarin.android.helloworld/files/.__override__ It should not happen, because we don't have fastdev here. However, it was weird, that the problem occured even with app Release builds. Turned out that in src/monodroid, Android.mk referenced COMMON_FLAGS, which did not exist. Fix typo. Then, since we don't have fastdev, monodroid needs to be built always in RELEASE mode. So, add -DRELEASE=1 even for Debug build.
Why shouldn't it happen? Not having a Thus, I see no need to build all versions of (Additionally, because of that message, we do have fastdev, just a limited form. The command-line won't use it, but once the app has been launched once and the fastdev directory created, it becomes entirely possible to manually push files there, which will come in extremely handy for fixing bugs, e.g. put a new The change on line 11 is important. Doh! |
As I mentioned before, current xamarin-android builds apk that NEVER WORKS. It is exactly because of this. And to make it worst, Debug is the DEFAULT behavior. What you are saying is "if you can manually do the same as existing fastdev e.g. copy all those assemblies to the (formerly-undocumented-and-unknown) directory, it works" which makes no sense to everyone but you. We need to ship sources that works for everyone. |
Yes, you mentioned that before. What you didn't mention is how/why it never works, or why defining All Meaning this:
should not be relevant. What is relevant? This:
That's a problem, and would explain why things don't work. That message is from
However, for that code to even be reached, THAT is the bug:
|
Further investigation shows that while the assemblies are "found", they are skipped here:
Indeed, if we look at the
We see that they're stored with This impacts everything: No wonder nothing works. :-( |
Further analysis shows the actual culprit: Consequently, our work to migrate away from Ionic.Zip -- which didn't work on Linux because it hardcoded |
Oh, and this is "wonderful": .NET behaves the same as Mono 4.4, meaning So this isn't a Mono "bug"; it's behaving as .NET does. (Though Mono does ignore the So what's the fix? Current plan is for @dellis1972 to attempt to complete @grendello's work at https://github.com/grendello/LibZipSharp, and get a decent |
That's actually what I thought we needed to investigate too, I was aware of the problem that even with my fix app assemblies were not expanded. Thanks for the investigation, that's great progress. My fix for this is however to resolve the issue in another level, and the scope of the fix is limited to whatever I stated. |
I don't know how to interpret this. :-( To reiterate, for this PR -- PR #82 -- I do not like the change on line 6. I see no reason to always define The change on line 11 should absolutely happen. |
Let's not tell a lie. We did NOT want to bring the debugging and bugfixing experience in xamarin-android. If it were totally doable within command line tools, then it should have been part of this xamarin-android sources. It was not included in xamarin-android "because it is NOT part of SDK but is part of IDEs feature". Since it is NOT part of xamarin-android feature, it does NOT exist. |
How about this: now that we (would) build both debug and release runtimes and it's easily switch between those, leave debug build as is (i.e. for existing "debug" purpose) and we default to Release build in |
The problem with this is that it results in an unusable
The current default build only builds the Debug configuration. Changing
I thus don't think that this is a good idea. |
Technically it depends on #105 |
Rename `reader` variable to `writer`, to match actual use/semantics. Avoid recurring `<package>` element occurrence: when reading multiple API XML files which contain the same `//package/@name` value, there would be multiple `<package/>` elements in the resulting document. It was almost harmless, but it could result in XPath query differences.
Changes: dotnet/android-tools@12f52ac...f5fcb9f * dotnet/android-tools@f5fcb9f: [Xamarin.Android.Tools.AndroidSdk] Add support for cmdline-tools (dotnet#83) * dotnet/android-tools@f473ff9: [AndroidSdkWindows] Guard against exception checking registry (dotnet#79) * dotnet/android-tools@36d7fee: JetBrains OpenJDK 11 detection (dotnet#82)
Changes: dotnet/android-tools@12f52ac...f5fcb9f * dotnet/android-tools@f5fcb9f: [Xamarin.Android.Tools.AndroidSdk] Add support for cmdline-tools (dotnet#83) * dotnet/android-tools@f473ff9: [AndroidSdkWindows] Guard against exception checking registry (dotnet#79) * dotnet/android-tools@36d7fee: JetBrains OpenJDK 11 detection (dotnet#82)
Changes: dotnet/android-tools@12f52ac...f5fcb9f * dotnet/android-tools@f5fcb9f: [Xamarin.Android.Tools.AndroidSdk] Add support for cmdline-tools (#83) * dotnet/android-tools@f473ff9: [AndroidSdkWindows] Guard against exception checking registry (#79) * dotnet/android-tools@36d7fee: JetBrains OpenJDK 11 detection (#82)
Changes: dotnet/android-tools@12f52ac...23c4fe0 * dotnet/android-tools@23c4fe0: [Xamarin.Android.Tools.AndroidSdk] Add support for cmdline-tools (#83) * dotnet/android-tools@cf9d325: [AndroidSdkWindows] Guard against exception checking registry (#79) * dotnet/android-tools@310c5cf: JetBrains OpenJDK 11 detection (#82)
The primary problem was that when app launches it tries to load assemblies:
It should not happen, because we don't have fastdev here.
However, it was weird, that the problem occured even with app Release builds.
Turned out that in src/monodroid, Android.mk referenced COMMON_FLAGS,
which did not exist. Fix typo.
Then, since we don't have fastdev, monodroid needs to be built always
in RELEASE mode. So, add -DRELEASE=1 even for Debug build.