Shader no work on Android(some device)

I use simple shader from docs unity:

Shader "Example/Diffuse Texture" {
Properties {
  _MainTex ("Texture", 2D) = "white" {}
}
SubShader {
  Tags { "RenderType" = "Opaque" }
  CGPROGRAM
  #pragma surface surf SimpleLambert

  half4 LightingSimpleLambert (SurfaceOutput s, half3 lightDir, half atten) {
      half NdotL = dot (s.Normal, lightDir);
      half4 c;
      c.rgb = s.Albedo * _LightColor0.rgb * (NdotL * atten * 2);
      c.a = s.Alpha;
      return c;
  }

  struct Input {
      float2 uv_MainTex;
  };
  sampler2D _MainTex;
  void surf (Input IN, inout SurfaceOutput o) {
      o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb;
  }
  ENDCG
 }
 Fallback "Diffuse"
 }

It’s work fine on my computer and device HTC(Android 2.2), but when I use Sony Xperia(Android 4.2.2), I see black object. Prompt please as to correct it(black object). Thanks in advance for the help.

I found solution. Add in surf function

 o.Alpha=c.a;

It’s work fine on both device. Also it is necessary to change in settings of the unity project 32 z-buffer for 24 z-buffer. Then everything works normally at all devices.