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…
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
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.
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.