diff --git a/packages/pigeon/CHANGELOG.md b/packages/pigeon/CHANGELOG.md
index da16220..1f64a3b 100644
--- a/packages/pigeon/CHANGELOG.md
+++ b/packages/pigeon/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 1.0.5
+
+* [java] Fixed bug when using Integer arguments to methods declared with 'int'
+  arguments.
+
 ## 1.0.4
 
 * [front-end] Fixed bug where codecs weren't generating support for types that
diff --git a/packages/pigeon/lib/generator_tools.dart b/packages/pigeon/lib/generator_tools.dart
index 451fcc2..7656288 100644
--- a/packages/pigeon/lib/generator_tools.dart
+++ b/packages/pigeon/lib/generator_tools.dart
@@ -8,7 +8,7 @@
 import 'ast.dart';
 
 /// The current version of pigeon. This must match the version in pubspec.yaml.
-const String pigeonVersion = '1.0.4';
+const String pigeonVersion = '1.0.5';
 
 /// Read all the content from [stdin] to a String.
 String readStdin() {
diff --git a/packages/pigeon/lib/java_generator.dart b/packages/pigeon/lib/java_generator.dart
index 2a4aac0..f239989 100644
--- a/packages/pigeon/lib/java_generator.dart
+++ b/packages/pigeon/lib/java_generator.dart
@@ -171,7 +171,13 @@
                   indent.writeln(
                       'ArrayList<Object> args = (ArrayList<Object>)message;');
                   enumerate(method.arguments, (int index, NamedType arg) {
-                    final String argType = _javaTypeForDartType(arg.type);
+                    // The StandardMessageCodec can give us [Integer, Long] for
+                    // a Dart 'int'.  To keep things simple we just use 64bit
+                    // longs in Pigeon with Java.
+                    final bool isInt = arg.type.baseName == 'int';
+                    final String argType =
+                        isInt ? 'Number' : _javaTypeForDartType(arg.type);
+                    final String argCast = isInt ? '.longValue()' : '';
                     final String argName = _getSafeArgumentName(index, arg);
                     indent.writeln(
                         '$argType $argName = ($argType)args.get($index);');
@@ -180,7 +186,7 @@
                       indent.writeln(
                           'throw new NullPointerException("$argName unexpectedly null.");');
                     });
-                    methodArgument.add(argName);
+                    methodArgument.add('$argName$argCast');
                   });
                 }
                 if (method.isAsynchronous) {
@@ -365,6 +371,9 @@
   return _javaTypeForBuiltinDartType(type) ?? type.baseName;
 }
 
+/// Casts variable named [varName] to the correct host datatype for [field].
+/// This is for use in codecs where we may have a map representation of an
+/// object.
 String _castObject(
     NamedType field, List<Class> classes, List<Enum> enums, String varName) {
   final HostDatatype hostDatatype = getHostDatatype(field, classes, enums,
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/AllDatatypesTest.java b/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/AllDatatypesTest.java
index c59e660..b6a8cf1 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/AllDatatypesTest.java
+++ b/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/AllDatatypesTest.java
@@ -13,6 +13,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.Map;
 import org.junit.Test;
 
 public class AllDatatypesTest {
@@ -122,4 +123,15 @@
         });
     assertTrue(didCall[0]);
   }
+
+  @Test
+  public void integerToLong() {
+    Everything everything = new Everything();
+    everything.setAnInt(123L);
+    Map<String, Object> map = everything.toMap();
+    assertTrue(map.containsKey("anInt"));
+    map.put("anInt", 123);
+    Everything readEverything = Everything.fromMap(map);
+    assertEquals(readEverything.getAnInt(), everything.getAnInt());
+  }
 }
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/PrimitiveTest.java b/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/PrimitiveTest.java
index dae86ad..eabdb5f 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/PrimitiveTest.java
+++ b/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/PrimitiveTest.java
@@ -8,13 +8,17 @@
 import static org.mockito.Mockito.*;
 
 import com.example.android_unit_tests.Primitive.PrimitiveFlutterApi;
+import com.example.android_unit_tests.Primitive.PrimitiveHostApi;
 import io.flutter.plugin.common.BinaryMessenger;
+import io.flutter.plugin.common.MessageCodec;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import org.junit.Test;
+import org.mockito.ArgumentCaptor;
 
 public class PrimitiveTest {
   private static BinaryMessenger makeMockBinaryMessenger() {
@@ -51,6 +55,32 @@
   }
 
   @Test
+  public void primitiveIntHostApi() {
+    PrimitiveHostApi mockApi = mock(PrimitiveHostApi.class);
+    when(mockApi.anInt(1L)).thenReturn(1L);
+    BinaryMessenger binaryMessenger = mock(BinaryMessenger.class);
+    PrimitiveHostApi.setup(binaryMessenger, mockApi);
+    ArgumentCaptor<BinaryMessenger.BinaryMessageHandler> handler =
+        ArgumentCaptor.forClass(BinaryMessenger.BinaryMessageHandler.class);
+    verify(binaryMessenger)
+        .setMessageHandler(eq("dev.flutter.pigeon.PrimitiveHostApi.anInt"), handler.capture());
+    MessageCodec<Object> codec = PrimitiveHostApi.getCodec();
+    ByteBuffer message = codec.encodeMessage(new ArrayList<Object>(Arrays.asList((Integer) 1)));
+    message.rewind();
+    handler
+        .getValue()
+        .onMessage(
+            message,
+            (bytes) -> {
+              bytes.rewind();
+              @SuppressWarnings("unchecked")
+              Map<String, Object> wrapped = (Map<String, Object>) codec.decodeMessage(bytes);
+              assertTrue(wrapped.containsKey("result"));
+              assertEquals(1L, ((Long) wrapped.get("result")).longValue());
+            });
+  }
+
+  @Test
   public void primitiveBool() {
     BinaryMessenger binaryMessenger = makeMockBinaryMessenger();
     PrimitiveFlutterApi api = new PrimitiveFlutterApi(binaryMessenger);
diff --git a/packages/pigeon/pubspec.yaml b/packages/pigeon/pubspec.yaml
index ca87553..0d4b8d2 100644
--- a/packages/pigeon/pubspec.yaml
+++ b/packages/pigeon/pubspec.yaml
@@ -2,7 +2,7 @@
 description: Code generator tool to make communication between Flutter and the host platform type-safe and easier.
 repository: https://github.com/flutter/packages/tree/master/packages/pigeon
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3Apigeon
-version: 1.0.4 # This must match the version in lib/generator_tools.dart
+version: 1.0.5 # This must match the version in lib/generator_tools.dart
 
 environment:
   sdk: '>=2.12.0 <3.0.0'
diff --git a/packages/pigeon/test/java_generator_test.dart b/packages/pigeon/test/java_generator_test.dart
index 5fe056a..835725a 100644
--- a/packages/pigeon/test/java_generator_test.dart
+++ b/packages/pigeon/test/java_generator_test.dart
@@ -818,9 +818,10 @@
     expect(code, contains('Long add(Long x, Long y)'));
     expect(
         code, contains('ArrayList<Object> args = (ArrayList<Object>)message;'));
-    expect(code, contains('Long xArg = (Long)args.get(0)'));
-    expect(code, contains('Long yArg = (Long)args.get(1)'));
-    expect(code, contains('Long output = api.add(xArg, yArg)'));
+    expect(code, contains('Number xArg = (Number)args.get(0)'));
+    expect(code, contains('Number yArg = (Number)args.get(1)'));
+    expect(code,
+        contains('Long output = api.add(xArg.longValue(), yArg.longValue())'));
   });
 
   test('flutter multiple args', () {
