diff --git a/java/src/main/java/org/msgpack/template/TemplateBuilder.java b/java/src/main/java/org/msgpack/template/TemplateBuilder.java
index 22a9be8c..b181bc75 100644
--- a/java/src/main/java/org/msgpack/template/TemplateBuilder.java
+++ b/java/src/main/java/org/msgpack/template/TemplateBuilder.java
@@ -135,8 +135,18 @@ public abstract class TemplateBuilder {
 
 	private static TemplateBuilder instance;
 	static {
-		// FIXME TemplateBuilder auto selection
-		instance = JavassistTemplateBuilder.getInstance();
+		instance = selectDefaultTemplateBuilder();
+	}
+
+	private static TemplateBuilder selectDefaultTemplateBuilder() {
+		try {
+			// FIXME JavassistTemplateBuilder doesn't work on DalvikVM
+			if(System.getProperty("java.vm.name").equals("Dalvik")) {
+				return ReflectionTemplateBuilder.getInstance();
+			}
+		} catch (Exception e) {
+		}
+		return JavassistTemplateBuilder.getInstance();
 	}
 
 	synchronized static void setInstance(TemplateBuilder builder) {