Simple shader turns black on Android

Hey I’m new to shaders and I have no idea why this shader produces a black appearance on Android. It works fine in the Editor, Unity displays the material properly and all…

Shader "Custom/Grid" {
	Properties {
		_GridColor ("Grid Color", Color) = (1,1,1,1)
	}
	SubShader {
		Tags { 
			"Queue"="Transparent+16"
			"RenderType"="Transparent" 
			}
		
		CGPROGRAM
		#pragma surface surf Lambert alpha

		half4 _GridColor;

		struct Input {
			float2 uv_MainTex;
		};

		void surf (Input IN, inout SurfaceOutput o) {
			o.Albedo =  _GridColor.rgb;
			o.Alpha = _GridColor.a;
		}
		ENDCG
	} 
	FallBack "Transparent/Diffuse"
}

Also the alpha is applied correctly… only the color turns out black no matter what I try.

Another possibility is to turn off the “Automatic Graphics API” in the build settings for Android. We were having the same black texture issue and I believe it was due to Unity incorrectly trying to compile with OpenGLES3 on a device that did not support the standard.We solved the issue by updating the Android build settings; specifically, unselecting the Automatic Graphics API then removing OpenGLES3 from the Graphics API list. This update can be accomplished in the following manner:

Go to the File Menu
->Select Build Settings
→ In the “Platform” section, select Android
→ Push the “Player Settings” button (Player Settings should appear in the Inspector Window)
→ Select the “Other Settings” area to expand it
→ Uncheck the "Automatic Graphics API selection box (A “Graphics APIs” list should appear)
→ Remove The “OpenGLES3” option by selecting it and hitting the “-” sign at the lower right of the list

Good Luck!

After some research and trial and error I have still no idea why it did not work on Android, but i found a working solution and I think it’s even a little faster.

Shader "Custom/Grid" {
	Properties {
		_GridColor ("Grid Color", Color) = (1,1,1,1)
	}
	SubShader {
		Tags { 
			"Queue"="Transparent+16"
			"IgnoreProjector"="False"
			"RenderType"="Transparent" 
			}
		Color[_GridColor]
		Pass{
			Blend SrcAlpha OneMinusSrcAlpha
		}
	} 
	FallBack "Transparent/Diffuse"
}

I had issues with basic materials turning black on Android. Fixed it by reducing the “smoothness” of the material to 0.5 or less. I also chose compress in ETC1 format, but I think the main issue was smoothness above 0.5. I’m using Unity 5.1.

I solved that issue. You have to turn off GPU Skinning in Player Settings.
I hope it helps
P.S. I use Unity 2018.1.0f2