Don't try to unmarshal void return types when there are out parameters being returned.

Change-Id: Ib7d2a5609167a076dd7ee8e10e8a55056789517e
diff --git a/tools/aidl/generate_java_rpc.cpp b/tools/aidl/generate_java_rpc.cpp
index 852b0c1..18726c3 100644
--- a/tools/aidl/generate_java_rpc.cpp
+++ b/tools/aidl/generate_java_rpc.cpp
@@ -737,11 +737,13 @@
     // The return value
     {
         Type* t = NAMES.Search(method->type.type.data);
-        Variable* rv = new Variable(t, "rv");
-        dispatchMethod->statements->Add(new VariableDeclaration(rv));
-        generate_create_from_data(t, dispatchMethod->statements, "_result", rv,
-                resultData, &classLoader);
-        realCall->arguments.push_back(rv);
+        if (t != VOID_TYPE) {
+            Variable* rv = new Variable(t, "rv");
+            dispatchMethod->statements->Add(new VariableDeclaration(rv));
+            generate_create_from_data(t, dispatchMethod->statements, "_result", rv,
+                    resultData, &classLoader);
+            realCall->arguments.push_back(rv);
+        }
     }
 
     VariableFactory stubArgs("arg");