构建我的应用程序的发布版本时,构建失败并出现以下错误:
错误:错误:可疑转换为 CLIPBOARD_SERVICE 的文本:预期 ClipboardManager [ServiceCast]
调试版本构建良好。
如果我注释掉下面的 SDK 11 之前的代码,它可以正常构建。
我该如何解决这个错误?
代码:
@TargetApi(11)
@SuppressWarnings("deprecation")
public void btnCopyClicked(View button) {
if (Build.VERSION.SDK_INT < 11) {
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setText(aString);
} else {
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
android.content.ClipData clip = android.content.ClipData.newPlainText("aString", aString);
clipboard.setPrimaryClip(clip);
}
}
环境:
- Android Studio 2.3
- Android SDK 工具 25.3.1
- Gradle 3.3
- Android 插件版本 2.3.0
项目build.gradle:
buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
classpath 'io.fabric.tools:gradle:1.22.1'
}
...
}
应用构建.gradle:
android {
compileSdkVersion 'Google Inc.:Google APIs:21'
buildToolsVersion '25.0.0'
defaultConfig {
minSdkVersion 10
targetSdkVersion 21
...
}
...
}
最佳答案
这似乎是ServiceCastDetector in lint 中的错误.要变通,请转换以下代码
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setText(aString);
到
Object clipboard = getSystemService(Context.CLIPBOARD_SERVICE);
((android.text.ClipboardManager)clipboard).setText(aString);
关于android - 可疑转换为 CLIPBOARD_SERVICE : expected ClipboardManager [ServiceCast] 的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42719005/