Can Java Decrypt a 4-byte MIC? I am using AES/CCM/NoPadding in Java, and it produces a 8-byte MAC when encrypting data. However, the data I receive, produced by a Bluetooth module, produces a 4-byte MIC.

Both the Bluetooth module and my Java/android app, using AES/CCM, produce the exact same output, but have the differences of the MIC and MAC. 

Is there a solution to this when trying to decrypt?
You say they produce 'the exact same output' but are different; I assume you mean the same ciphertext but different MAC aka MIC which is also output. Note Sun/Oracle Java, or more exactly the set of cryptoproviders in Sun/Oracle Java, does not (yet?) support CCM at all, and AIUI neither does OpenJDK. However the optional third-party provider from BouncyCastle does. Android Java on the other hand uses spongycastle which I understand to be a clone of BouncyCastle, but I don't know which version(s).

BouncyCastle 1.50 up provider implementation of AES CCM accepts via Cipher.init(key,param) parameter type javax.crypto.spec.GCMParameterSpec which exists only in Java 7 up, to specify the MAC aka tag size (in bits) as well as the IV aka nonce. Yes, GCMParameterSpec for a CCM cipher. If what you have in Android is equivalent to BC >=1.50 on Java >=7 try that.

Otherwise I think your only choice is to implement CTR + CBCMAC yourself, which wouldn't be all that hard.