我一直在努力让RenderScript在我的应用上使用TargetSDKVersion 26和minSDKVersion 21在Gradle Sync上出错:
错误:任务':app:compileDebugRenderscript'执行失败。 com.android.ide.common.process.ProcessException:使用参数{-O 3 -I / home /执行进程/home/mail929/.android/sdk/build-tools/26.0.2/llvm-rs-cc时出错mail929 / .android / sdk / build-tools / 26.0.2 / renderscript / include / -I /home/mail929/.android/sdk/build-tools/26.0.2/renderscript/clang-include/ -p / home / mail929 / Code / Android / SmartME / app / build / generated / source / rs / debug -o / home / mail929 / Code / Android / SmartME / app / build / generated / res / rs / debug / raw -target-api 21 /home/mail929/Code/Android/SmartME/app/src/main/rs/combine.rs}
最后我注意到documentation page:
的底部图形功能和类型
RenderScript的图形子系统已在API级别23删除。
这是否意味着我根本不能使用RenderScript?如果有的话有什么好的选择吗?
这是我的完整build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
applicationId "edu.marquette.mcw.smartme"
minSdkVersion 21
targetSdkVersion 26
versionCode 4
versionName "2rc1"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
renderscriptTargetApi 18
renderscriptSupportModeEnabled false
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.0.0'
compile 'com.android.support:cardview-v7:26.0.0'
testCompile 'junit:junit:4.12'
}
答案 0 :(得分:1)
不,Renderscript尚未完全弃用,只有直接在某些OpenGL类型构造的图形功能。由于它或多或少地在OpenGL中使用相同的东西,它被删除了,而你可以用OpenGL交换纹理。
minSdkVersion
中renderscriptTargetApi
和build.gradle
的组合将导致minSdkVersion
用于Renderscript目标API。这种方式的工作方式真的很奇怪。除非您绝对需要android.renderscript
框架包中的某些内容,否则请将renderscriptSupportModeEnabled
设置为true
,以使用支持库版本。这也可能有助于解决您所看到的任何问题。如果没有,请尝试从构建日志中提供更多详细信息。
答案 1 :(得分:0)
我实际上决定手动运行命令以查看错误并收到以下错误:
加载共享库时出现错误:libncurses.so.5:无法打开共享对象文件:没有这样的文件或目录
我通过在Fedora上安装ncurses-compat-libs来解决这个问题,并且Gradle Sync成功完成