-
Notifications
You must be signed in to change notification settings - Fork 538
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
Final P API update. #1790
Final P API update. #1790
Conversation
The problem is that xamarin-android does not really use "platforms" listed in build-tools/android-toolchains. It uses them from mono/sdks ! I spent not a little time to figure out that. |
Build fails because This PR needs to include a bump to: mono/mono@6f9bef3 |
API 27 package is updated and it introduced some new API bits too.
Build is failing because of:
|
The My guess is that To that end I've restarted the build, so we can see what the build outputs are. (Hopefully we won't get another/new PR soon...) |
Theory is close...but not quite right; from the debug log:
Notice that there are no lines; we are (probably) generating an empty file, a'la: <AndroidApiInfo>
</AndroidApiInfo> |
@@ -140,10 +140,10 @@ | |||
<Stable>True</Stable> | |||
</AndroidApiInfo> | |||
<AndroidApiInfo Include="v8.1.99"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe that this is the problem: we didn't change it to v9.0
. Consequently, when BuildEverything.mk
builds framework 9.0, @(_ApiInfo)
is empty:
<Id>P</Id> | ||
<Stable>False</Stable> | ||
<Id>28</Id> | ||
<Stable>True</Stable> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Question: Given that enumification is not yet complete, and that we're not checking v9.0 for API compatibility/consistency, and the IDEs will default to using the latest %(Stable)
=True value...
Shouldn't this value remain False
? I believe it should be False until this is fully stable.
However, there is something weird here: There is no It looks like it was removed in API-P DP2. We'll have to update the test. |
Canvas.save(int) was [removed in API-P DP2][0]. [0]: https://developer.android.com/sdk/api_diff/p-dp2/changes
build |
After adding full-mono-integration-build, the current build failure:
Notably "wrong" is the path to |
Fixes build break from: dotnet#1790 (comment)
Android P Developer Preview 3 has been released, which contains the *final* API-28 Java API. Provide an *initial* (not *stable*) API binding for API-28, `$(TargetFrameworkversion)`=v9.0 (not v8.1.99). This initial binding is not stable because enumification hasn't been performed yet. Bumps to mono/2018-02/6f9bef3b Related change: [API-28 removes the `Canvas.save(int)` method][0], which caused `Xamarin.Android.McwGen-Tests` to not build: [0]: https://developer.android.com/sdk/api_diff/p-dp2/changes "javac" -source 1.5 -target 1.6 -d "obj/Debug/__CreateTestJarFile-bin" -cp "…/android-toolchain/sdk/platforms/android-28/android.jar" "java/com/xamarin/android/Bxc4288.java" "java/com/xamarin/android/Bxc58383.java" "java/com/xamarin/android/CallMethodFromCtor.java" "java/com/xamarin/android/CallNonvirtualBase.java" "java/com/xamarin/android/CallNonvirtualDerived.java" "java/com/xamarin/android/DataHandler.java" "java/com/xamarin/android/DataListener.java" "java/com/xamarin/android/Logger.java" "java/com/xamarin/android/MarkerIgnoringBase.java" "java/com/xamarin/android/MyCanvas.java" "java/com/xamarin/android/Timing.java" "java/com/xamarin/android/Bxc9446.java" "java/com/xamarin/android/Bxc7634.java" "java/com/xamarin/android/Bxc37706Throwable.java" java/com/xamarin/android/MyCanvas.java:12: error: method does not override or implement a method from a supertype @OverRide ^ (TaskId:1188) java/com/xamarin/android/MyCanvas.java:15: error: method save in class Canvas cannot be applied to given types; return super.save (saveFlags); ^ required: no arguments found: int reason: actual and formal argument lists differ in length 2 errors Fix `MyCanvas.java` to instead override `Canvas.save()`.
API 27 package is updated and it introduced some new API bits too.