if (mClipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN) ||
mClipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_HTML))
getPrimaryClipDescription() 在少数 Android 6.0.1 中为 null。
Attempt to invoke virtual method 'boolean android.content.ClipDescription.hasMimeType(java.lang.String)' on a null object reference
更新
请尝试三星 Galaxy S5 和 Note 4 等设备。
最佳答案
我使用 Genymotion 模拟器在 Galaxy S6 - 6.0.0 图像上测试了这段代码,我没有收到任何错误。
// Copy to clipbaord
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
// ClipData clip = ClipData.newPlainText("Label", "TEXT");
// clipboard.setPrimaryClip(clip);
if (clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN) ||
clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_HTML))
{
Log.d("Copied!", "Copied!");
}
一些建议:
尝试在您的主要代码之前添加此代码:
如果 (!(mClipboard .hasPrimaryClip()))
这将确保剪贴板有一个主剪辑,您可以 处理。
检查来自 Android 网站的此链接: https://developer.android.com/guide/topics/text/copy-paste.html它 有很好的关于复制和粘贴内容的信息和代码。
最后,联系三星。你可以在三星上发帖提问 开发者社区http://developer.samsung.com/community去检查 问题的根源,因为这个问题是三星特有的 设备。
关于android - ClipData getPrimaryClipDescription() 在 Android 6.0.1 中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38320907/