Skip to content

Commit 738de61

Browse files
authored
[build] Remove support for JDK 8. (#1120)
Context: 7a32bb9 Context: https://stackoverflow.com/questions/55853220/handling-change-in-newlines-by-xml-transformation-for-cdata-from-java-8-to-java Context: https://bugs.java.com/bugdatabase/view_bug?bug_id=8223291 **Background**: Since commit bc5bcf4, *two* JDKs were required in order to *fully* build and test Java.Interop: JDK 1.8 and JDK-11. This is because `src/Java.Interop` requires JDK-11+ to build, while some unit tests required JDK 1.8 to pass (because Java XML output changed between JDK 1.8 and JDK-11; see also 7a32bb9). Recently, a question arose: how well does .NET Android work with JDK 17? ([Android Studio recently bumped][0] the bundled JDK from JDK-11 to JDK-17.) The "straightforward" approach of "provision JDK-17 and just build everything with JDK-17" quickly meant that Java.Interop needed to build under JDK-17. This in turn segued into a "how do I make the MSBuild property meanings clearer", as `$(JavaCPath)` would be for JDK 1.8, while `$(JavaC11Path)` was for JDK-11, but with JDK-17 being provisioned `$(JavaC11Path)` *actually* was for JDK-17, which is just confusing. After discussion, we decided that we don't need to continue using JDK 1.8 anymore. Android API-31 requires JDK-11 in order to use various Android SDK build tools, and the Google Play Store requires a target SDK version of API-33 starting 2023-Aug. There is not much point in maintaining JDK 1.8 support. JDK 11 or later is now required. Update to use Gradle 8.1.1. This is needed for later JDK-17 support. `java/util/Collection.java` existed to help test API documentation import (when `$ANDROID_SDK_PATH` is set). JDK-11 does not support compiling `java/util/Collection.java` anymore; it errors out with: java/java/util/Collection.java:1: error: package exists in another module: java.base package java.util; ^ "Rename" this type to `android/animation/TypeEvaluator.java`, and update the API documentation import tests accordingly. Update the `ExpectedTypeDeclaration.MajorVersion` values to 0x37. The `.class` files for nested types has seen the addition of a new `NestHost` constant; see also: * https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-4.html#jvms-4.7.28 * https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-5.html#jvms-5.4.4 Update `ExpectedTypeDeclaration.ConstantPoolCount` as appropriate. Additional `NestHost`-related fallout is that `JavaType.class` now includes `com/xamarin/JavaType$RNC$RPNC` in the `InnerClasses` table. Update `tools/java-source-utils` unit tests so that JDK-11 can now be used to run (and pass!) the unit tests. (This previously required JDK 1.8.) [0]: https://web.archive.org/web/20230507035529/https://developer.android.com/studio/releases/#jdk-17
1 parent 4d47df8 commit 738de61

34 files changed

+354
-216
lines changed

Configuration.Override.props.in

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<PropertyGroup>
4-
<JdkJvmPath>/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/jre/jli/libjli.dylib</JdkJvmPath>
4+
<JdkJvmPath>/Library/Java/JavaVirtualMachines/microsoft-11.jdk/Contents/Home/lib/jli/libjli.dylib</JdkJvmPath>
55
<MonoFrameworkPath>/Library/Frameworks/Mono.framework/Libraries/libmonosgen-2.0.1.dylib</MonoFrameworkPath>
66
<UtilityOutputFullPath>$(MSBuildThisFileDirectory)bin\$(Configuration)\</UtilityOutputFullPath>
77
</PropertyGroup>
88
<ItemGroup>
99
<!-- JDK C `include` directories -->
10-
<JdkIncludePath Include="/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/include" />
11-
<JdkIncludePath Include="/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/include/darwin" />
10+
<JdkIncludePath Include="/Library/Java/JavaVirtualMachines/microsoft-11.jdk/Contents/Home/include" />
11+
<JdkIncludePath Include="/Library/Java/JavaVirtualMachines/microsoft-11.jdk/Contents/Home/include/darwin" />
1212
</ItemGroup>
1313
<ItemGroup>
1414
<!-- Mono C `include` directories -->

Directory.Build.props

+2-2
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@
5858
<GradleHome Condition=" '$(GradleHome)' == '' ">$(MSBuildThisFileDirectory)build-tools\gradle</GradleHome>
5959
<GradleWPath Condition=" '$(GradleWPath)' == '' ">$(GradleHome)\gradlew</GradleWPath>
6060
<GradleArgs Condition=" '$(GradleArgs)' == '' ">--stacktrace --no-daemon</GradleArgs>
61-
<JavacSourceVersion Condition=" '$(JavacSourceVersion)' == '' ">1.8</JavacSourceVersion>
62-
<JavacTargetVersion Condition=" '$(JavacTargetVersion)' == '' ">1.8</JavacTargetVersion>
61+
<JavacSourceVersion Condition=" '$(JavacSourceVersion)' == '' ">11</JavacSourceVersion>
62+
<JavacTargetVersion Condition=" '$(JavacTargetVersion)' == '' ">11</JavacTargetVersion>
6363
<_BootClassPath Condition=" '$(JreRtJarPath)' != '' ">-bootclasspath "$(JreRtJarPath)"</_BootClassPath>
6464
<_JavacSourceOptions>-source $(JavacSourceVersion) -target $(JavacTargetVersion) $(_BootClassPath)</_JavacSourceOptions>
6565
</PropertyGroup>

build-tools/automation/azure-pipelines.yaml

-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ pr:
2020
variables:
2121
RunningOnCI: true
2222
Build.Configuration: Release
23-
MaxJdkVersion: 8
2423
DotNetCoreVersion: 7.x
2524
DotNetTargetFramework: net7.0
2625
NetCoreTargetFrameworkPathSuffix: -$(DotNetTargetFramework)

build-tools/automation/templates/core-build.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ steps:
66
displayName: Prepare Solution
77
inputs:
88
projects: Java.Interop.sln
9-
arguments: '-c $(Build.Configuration) -target:Prepare -p:MaxJdkVersion=$(MaxJdkVersion)'
9+
arguments: '-c $(Build.Configuration) -target:Prepare'
1010

1111
- task: DotNetCoreCLI@2
1212
displayName: Shut down existing build server
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

build-tools/scripts/Prepare.targets

+2-13
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,15 @@
1515
<PropertyGroup>
1616
<_MaxJdk>$(MaxJdkVersion)</_MaxJdk>
1717
<_MaxJdk Condition=" '$(_MaxJdk)' == '' ">$(JI_MAX_JDK)</_MaxJdk>
18-
<Jdks8Root Condition=" '$(Jdks8Root)' == '' And '$(JAVA_HOME_8_X64)' != '' And Exists($(JAVA_HOME_8_X64)) ">$(JAVA_HOME_8_X64)</Jdks8Root>
18+
<JdksRoot Condition=" '$(JdksRoot)' == '' And '$(JAVA_HOME_11_X64)' != '' And Exists($(JAVA_HOME_11_X64)) ">$(JAVA_HOME_11_X64)</JdksRoot>
1919
</PropertyGroup>
2020
<JdkInfo
21-
JdksRoot="$(Jdks8Root)"
21+
JdksRoot="$(JdksRoot)"
2222
MakeFragmentFile="$(MSBuildThisFileDirectory)..\..\bin\Build$(Configuration)\JdkInfo.mk"
2323
MaximumJdkVersion="$(_MaxJdk)"
2424
DotnetToolPath="$(DotnetToolPath)"
2525
PropertyFile="$(_TopDir)\bin\Build$(Configuration)\JdkInfo.props">
2626
<Output TaskParameter="JavaHomePath" PropertyName="_JavaSdkDirectory" />
2727
</JdkInfo>
28-
<PropertyGroup>
29-
<Jdks11Root Condition=" '$(Jdks11Root)' == '' And '$(JAVA_HOME_11_X64)' != '' And Exists($(JAVA_HOME_11_X64)) ">$(JAVA_HOME_11_X64)</Jdks11Root>
30-
</PropertyGroup>
31-
<JdkInfo
32-
JdksRoot="$(Jdks11Root)"
33-
PropertyNameModifier="11"
34-
MinimumJdkVersion="11.0"
35-
MaximumJdkVersion="11.99.0"
36-
PropertyFile="$(_TopDir)\bin\Build$(Configuration)\JdkInfo-11.props">
37-
<Output TaskParameter="JavaHomePath" PropertyName="Java11SdkDirectory"/>
38-
</JdkInfo>
3928
</Target>
4029
</Project>

src/Java.Base/Java.Base.targets

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
</ItemGroup>
1010

1111
<Target Name="_GetJavaBaseJmodPath">
12-
<PropertyGroup Condition=" '$(Java11SdkDirectory)' != '' ">
13-
<_JavaBaseJmod>$(Java11SdkDirectory)/jmods/java.base.jmod</_JavaBaseJmod>
12+
<PropertyGroup Condition=" '$(JavaSdkDirectory)' != '' ">
13+
<_JavaBaseJmod>$(JavaSdkDirectory)/jmods/java.base.jmod</_JavaBaseJmod>
1414
</PropertyGroup>
1515
</Target>
1616

tests/Xamarin.Android.Tools.Bytecode-Tests/IJavaInterfaceTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public void ClassFile_WithIJavaInterface_class ()
1616
{
1717
var c = LoadClassFile (JavaType + ".class");
1818
new ExpectedTypeDeclaration {
19-
MajorVersion = 0x34,
19+
MajorVersion = 0x37,
2020
MinorVersion = 0,
2121
ConstantPoolCount = 23,
2222
AccessFlags = ClassAccessFlags.Interface | ClassAccessFlags.Abstract,

tests/Xamarin.Android.Tools.Bytecode-Tests/JavaAnnotationTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public void ClassFile_WithJavaAnnotation_class ()
1616
{
1717
var c = LoadClassFile (JavaType + ".class");
1818
new ExpectedTypeDeclaration {
19-
MajorVersion = 0x34,
19+
MajorVersion = 0x37,
2020
MinorVersion = 0,
2121
ConstantPoolCount = 23,
2222
AccessFlags = ClassAccessFlags.Public | ClassAccessFlags.Interface | ClassAccessFlags.Abstract | ClassAccessFlags.Annotation,

tests/Xamarin.Android.Tools.Bytecode-Tests/JavaEnumTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public void ClassFileDescription ()
2020
{
2121
var c = LoadClassFile (JavaType + ".class");
2222
new ExpectedTypeDeclaration {
23-
MajorVersion = 0x34,
23+
MajorVersion = 0x37,
2424
MinorVersion = 0,
2525
ConstantPoolCount = 53,
2626
AccessFlags = ClassAccessFlags.Final | ClassAccessFlags.Super | ClassAccessFlags.Enum,

tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.1MyStringListTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ public void ClassFileDescription ()
2626
: new ParameterInfo ("val$value1", "Ljava/lang/Object;", "Ljava/lang/Object;");
2727
var c = LoadClassFile (JavaType + ".class");
2828
new ExpectedTypeDeclaration {
29-
MajorVersion = 0x34,
29+
MajorVersion = 0x37,
3030
MinorVersion = 0,
31-
ConstantPoolCount = 73,
31+
ConstantPoolCount = 74,
3232
AccessFlags = ClassAccessFlags.Super,
3333
FullName = "com/xamarin/JavaType$1MyStringList",
3434
Superclass = new TypeInfo ("java/util/ArrayList", "Ljava/util/ArrayList<Ljava/lang/String;>;"),

tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.1Tests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ public void ClassFileDescription ()
1616
{
1717
var c = LoadClassFile (JavaType + ".class");
1818
new ExpectedTypeDeclaration {
19-
MajorVersion = 0x34,
19+
MajorVersion = 0x37,
2020
MinorVersion = 0,
21-
ConstantPoolCount = 47,
21+
ConstantPoolCount = 48,
2222
AccessFlags = ClassAccessFlags.Super,
2323
FullName = "com/xamarin/JavaType$1",
2424
Superclass = new TypeInfo ("java/lang/Object", "Ljava/lang/Object;"),

tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.ASCTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ public void ClassFileDescription ()
1616
{
1717
var c = LoadClassFile (JavaType + ".class");
1818
new ExpectedTypeDeclaration {
19-
MajorVersion = 0x34,
19+
MajorVersion = 0x37,
2020
MinorVersion = 0,
21-
ConstantPoolCount = 23,
21+
ConstantPoolCount = 24,
2222
Deprecated = true,
2323
AccessFlags = ClassAccessFlags.Super,
2424
FullName = "com/xamarin/JavaType$ASC",

tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.PSCTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ public void ClassFileDescription ()
1616
{
1717
var c = LoadClassFile (JavaType + ".class");
1818
new ExpectedTypeDeclaration {
19-
MajorVersion = 0x34,
19+
MajorVersion = 0x37,
2020
MinorVersion = 0,
21-
ConstantPoolCount = 20,
21+
ConstantPoolCount = 21,
2222
AccessFlags = ClassAccessFlags.Public | ClassAccessFlags.Super | ClassAccessFlags.Abstract,
2323
FullName = "com/xamarin/JavaType$PSC",
2424
Superclass = new TypeInfo ("java/lang/Object", "Ljava/lang/Object;"),

tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.RNC.RPNCTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ public void ClassFileDescription ()
1616
{
1717
var c = LoadClassFile (JavaType + ".class");
1818
new ExpectedTypeDeclaration {
19-
MajorVersion = 0x34,
19+
MajorVersion = 0x37,
2020
MinorVersion = 0,
21-
ConstantPoolCount = 46,
21+
ConstantPoolCount = 47,
2222
AccessFlags = ClassAccessFlags.Public | ClassAccessFlags.Super | ClassAccessFlags.Abstract,
2323
FullName = "com/xamarin/JavaType$RNC$RPNC",
2424
Superclass = new TypeInfo ("java/lang/Object", "Ljava/lang/Object;"),

tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.RNCTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ public void ClassFileDescription ()
1616
{
1717
var c = LoadClassFile (JavaType + ".class");
1818
new ExpectedTypeDeclaration {
19-
MajorVersion = 0x34,
19+
MajorVersion = 0x37,
2020
MinorVersion = 0,
21-
ConstantPoolCount = 44,
21+
ConstantPoolCount = 45,
2222
AccessFlags = ClassAccessFlags.Public | ClassAccessFlags.Super | ClassAccessFlags.Abstract,
2323
FullName = "com/xamarin/JavaType$RNC",
2424
Superclass = new TypeInfo ("java/lang/Object", "Ljava/lang/Object;"),

tests/Xamarin.Android.Tools.Bytecode-Tests/JavaTypeNoParametersTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public void ClassFile_WithNonGenericGlobalType_class ()
1616
{
1717
var c = LoadClassFile (JavaType + ".class");
1818
new ExpectedTypeDeclaration {
19-
MajorVersion = 0x34,
19+
MajorVersion = 0x37,
2020
MinorVersion = 0,
2121
ConstantPoolCount = 18,
2222
AccessFlags = ClassAccessFlags.Public | ClassAccessFlags.Super,

tests/Xamarin.Android.Tools.Bytecode-Tests/JavaTypeTests.cs

+9-3
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ public void ClassFile_WithJavaType_class ()
1818
{
1919
var c = LoadClassFile ("JavaType.class");
2020
new ExpectedTypeDeclaration {
21-
MajorVersion = 0x34,
21+
MajorVersion = 0x37,
2222
MinorVersion = 0,
23-
ConstantPoolCount = 198,
23+
ConstantPoolCount = 202,
2424
AccessFlags = ClassAccessFlags.Public | ClassAccessFlags.Super,
2525
FullName = "com/xamarin/JavaType",
2626
Superclass = new TypeInfo ("java/lang/Object", "Ljava/lang/Object;"),
@@ -65,6 +65,12 @@ public void ClassFile_WithJavaType_class ()
6565
InnerName = null,
6666
AccessFlags = 0,
6767
},
68+
new ExpectedInnerClassInfo {
69+
InnerClassName = "com/xamarin/JavaType$RNC$RPNC",
70+
OuterClassName = "com/xamarin/JavaType$RNC",
71+
InnerName = "RPNC",
72+
AccessFlags = ClassAccessFlags.Public | ClassAccessFlags.Abstract,
73+
},
6874
},
6975
Fields = {
7076
new ExpectedFieldDeclaration {
@@ -143,7 +149,7 @@ public void ClassFile_WithJavaType_class ()
143149
Name = "STATIC_FINAL_STRING",
144150
Descriptor = "Ljava/lang/String;",
145151
AccessFlags = FieldAccessFlags.Public | FieldAccessFlags.Static | FieldAccessFlags.Final,
146-
ConstantValue = "String(stringIndex=188 Utf8=\"Hello, \\\"embedded\0Nulls\" and \ud83d\udca9!\")",
152+
ConstantValue = "String(stringIndex=190 Utf8=\"Hello, \\\"embedded\0Nulls\" and \ud83d\udca9!\")",
147153
},
148154
new ExpectedFieldDeclaration {
149155
Name = "STATIC_FINAL_BOOL_FALSE",

tests/Xamarin.Android.Tools.Bytecode-Tests/NonGenericGlobalTypeTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public void ClassFile_WithNonGenericGlobalType_class ()
1616
{
1717
var c = LoadClassFile (JavaType + ".class");
1818
new ExpectedTypeDeclaration {
19-
MajorVersion = 0x34,
19+
MajorVersion = 0x37,
2020
MinorVersion = 0,
2121
ConstantPoolCount = 16,
2222
AccessFlags = ClassAccessFlags.Super,

tests/Xamarin.Android.Tools.Bytecode-Tests/ParameterFixupTests.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public void XmlDeclaration_FixedUpFromDocumentation()
2424
return;
2525
}
2626
try {
27-
AssertXmlDeclaration ("Collection.class", "ParameterFixupFromDocs.xml", Path.Combine (Environment.GetEnvironmentVariable ("ANDROID_SDK_PATH"), "docs", "reference"));
27+
AssertXmlDeclaration ("TypeEvaluator.class", "ParameterFixupFromDocs.xml", Path.Combine (Environment.GetEnvironmentVariable ("ANDROID_SDK_PATH"), "docs", "reference"));
2828
} catch (Exception ex) {
2929
Assert.Fail ("An unexpected exception was thrown : {0}", ex);
3030
}
@@ -38,7 +38,7 @@ public void XmlDeclaration_FixedUpFromApiXmlDocumentation ()
3838
try {
3939
tempFile = LoadToTempFile ("ParameterFixupApiXmlDocs.xml");
4040

41-
AssertXmlDeclaration ("Collection.class", "ParameterFixupFromDocs.xml", tempFile);
41+
AssertXmlDeclaration ("TypeEvaluator.class", "ParameterFixupFromDocs.xml", tempFile);
4242
} finally {
4343
if (File.Exists (tempFile))
4444
File.Delete (tempFile);
@@ -111,7 +111,7 @@ public void XmlDeclaration_FixedUpFromParameterDescription ()
111111
try {
112112
tempFile = LoadToTempFile ("ParameterDescription.txt");
113113

114-
AssertXmlDeclaration (new string [] { "Collection.class" }, "ParameterFixupFromDocs.xml", tempFile);
114+
AssertXmlDeclaration (new string [] { "TypeEvaluator.class" }, "ParameterFixupFromDocs.xml", tempFile);
115115
}
116116
finally {
117117
if (File.Exists (tempFile))

tests/Xamarin.Android.Tools.Bytecode-Tests/Resources/ParameterDescription.txt

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11

22
; This is a comment line.
3-
package java.util ; Anything after semicolon is comment.
4-
class Collection<E>
5-
add(E e)
6-
#ctor()
3+
package android.animation ; Anything after semicolon is comment.
4+
class TypeEvaluator<T>
5+
evaluate(float fraction, T startValue, T endValue)
76

87
package com.xamarin
98
interface NestedInterface.DnsSdTxtRecordListener
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
22
<api>
3-
<package name="java.util">
4-
<class name="Collection">
5-
<method name="add">
6-
<parameter name="e" type="E" />
7-
</method>
8-
</class>
9-
</package>
3+
<package name="android.animation">
4+
<class name="TypeEvaluator">
5+
<method name="evaluate">
6+
<parameter name="fraction" type="float" />
7+
<parameter name="startValue" type="T" />
8+
<parameter name="endValue" type="T" />
9+
</method>
10+
</class>
11+
</package>
1012
</api>

tests/Xamarin.Android.Tools.Bytecode-Tests/Resources/ParameterFixupFromDocs.xml

+21-17
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,51 @@
11
<api
22
api-source="class-parse">
33
<package
4-
name="java.util"
5-
jni-name="java/util">
4+
name="android.animation"
5+
jni-name="android/animation">
66
<interface
77
abstract="true"
88
deprecated="not deprecated"
99
final="false"
10-
name="Collection"
11-
jni-signature="Ljava/util/Collection;"
12-
source-file-name="Collection.java"
10+
name="TypeEvaluator"
11+
jni-signature="Landroid/animation/TypeEvaluator;"
12+
source-file-name="TypeEvaluator.java"
1313
static="false"
1414
visibility="public">
1515
<typeParameters>
1616
<typeParameter
17-
name="E"
17+
name="T"
1818
jni-classBound="Ljava/lang/Object;"
1919
classBound="java.lang.Object"
2020
interfaceBounds=""
2121
jni-interfaceBounds="" />
2222
</typeParameters>
23-
<implements
24-
name="java.lang.Iterable"
25-
name-generic-aware="java.lang.Iterable&lt;E&gt;"
26-
jni-type="Ljava/lang/Iterable&lt;TE;&gt;;" />
2723
<method
2824
abstract="true"
2925
deprecated="not deprecated"
3026
final="false"
31-
name="add"
27+
name="evaluate"
3228
native="false"
33-
return="boolean"
34-
jni-return="Z"
29+
return="T"
30+
jni-return="TT;"
3531
static="false"
3632
synchronized="false"
3733
visibility="public"
3834
bridge="false"
3935
synthetic="false"
40-
jni-signature="(Ljava/lang/Object;)Z">
36+
jni-signature="(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;">
4137
<parameter
42-
name="e"
43-
type="E"
44-
jni-type="TE;" />
38+
name="fraction"
39+
type="float"
40+
jni-type="F" />
41+
<parameter
42+
name="startValue"
43+
type="T"
44+
jni-type="TT;" />
45+
<parameter
46+
name="endValue"
47+
type="T"
48+
jni-type="TT;" />
4549
</method>
4650
</interface>
4751
</package>

tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
<EmbeddedResource Include="$(IntermediateOutputPath)classes\com\xamarin\ParameterAbstractClass.class" />
4747
<EmbeddedResource Include="$(IntermediateOutputPath)classes\com\xamarin\ParameterClass.class" />
4848
<EmbeddedResource Include="$(IntermediateOutputPath)classes\com\xamarin\ParameterClass2.class" />
49-
<EmbeddedResource Include="$(IntermediateOutputPath)classes\java\util\Collection.class" />
49+
<EmbeddedResource Include="$(IntermediateOutputPath)classes\android\animation\TypeEvaluator.class" />
5050
<EmbeddedResource Include="$(IntermediateOutputPath)classes\module-info.class" />
5151
<EmbeddedResource Include="$(IntermediateOutputPath)classes\NonGenericGlobalType.class" />
5252
</ItemGroup>

0 commit comments

Comments
 (0)