RenderScript 包不存在 - 虽然已添加到 build.gradle
RenderScript package does not exist - although added to build.gradle
我(再次)在我的项目中遇到支持库问题。我想在我的应用程序中使用 RenderScript 库进行一些图像处理。这个项目是我从别人那里接手的,也是我迄今为止的第一个 Android Studio/gradle 项目。因此,我仍然缺乏经验,尤其是关于所有这些 gradle 配置文件。
问题是:我在应用程序模块中的 build.gradle 文件中包含了以下几行:
defaultConfig {
...
renderscriptTargetApi Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
renderscriptSupportModeEnabled true
...
}
project.ANDROID_BUILD_TARGET_SDK_VERSION 已在 gradle.properties 中同时设置为 15 和 22,这没有实际区别。
但是,我每次编译项目时总是会出现这样的错误:
Error:(12, 39) error: package android.support.v8.renderscript does not exist
真正奇怪的是:如果我从头开始创建一个新项目并在应用程序模块中的 build.gradle 中包含相同的两行,我可以使用 RenderScript classes 而无需问题。所以我认为我的一般配置不会有问题,但必须以某种方式与项目相关。尽管 gradle 脚本中的行正确,我只是不确定有什么会导致这种行为并禁用软件包。
有一件事可能很重要,让我从一开始就想知道:当我第一次将这些行添加到 gradle 脚本并在我的 class 文件中创建导入语句时,Android studio 询问是否应该将一些支持库 jar 文件作为库导入。我不知道为什么需要这样做,因为据我所知,支持 classes 不需要任何额外的设置。我同意导入它,但正如我上面所说的,仍然找不到包和 classes。
我项目中的完整 build.gradle 文件(不 工作):
apply plugin: 'com.android.application'
android {
compileSdkVersion Integer.parseInt(project.ANDROID_COMPILE_SDK_VERSION)
buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
defaultConfig {
applicationId 'com.some.app'
multiDexEnabled = true
renderscriptTargetApi Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
renderscriptSupportModeEnabled true
minSdkVersion Integer.parseInt(project.MIN_SDK)
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
}
signingConfigs {
signingConfigs {
debug {
storeFile file('<some file>')
keyAlias 'xxx'
keyPassword 'xxx'
storePassword 'xxx'
}
release {
storeFile file('<some file>')
keyAlias 'xxx'
keyPassword 'xxx'
storePassword 'xxx'
}
}
}
buildTypes {
release {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.release
debuggable false
jniDebuggable false
zipAlignEnabled true
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
dexOptions {
javaMaxHeapSize "4g"
}
}
dependencies {
compile 'com.android.support:appcompat-v7:22.2.0+'
compile 'com.android.support:support-v4:22.2.0+'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':firebase_plugin')
compile project(':geofire')
compile 'com.android.support:multidex:1.0.0'
compile files('libs/acra-4.5.0.jar')
}
虚拟项目中应用程序模块的 build.gradle 文件( 有效):
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.self.bitmapscaletest"
minSdkVersion 15
targetSdkVersion 22
renderscriptTargetApi 15
renderscriptSupportModeEnabled true
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
}
较大的项目有多个模块,这会是个问题吗?我还必须调整那些其他模块的 gradle 脚本吗?
提前致谢!
发布后不久我似乎已经解决了它。不同的模块确实似乎是问题所在。将这两行添加到其他模块后 gradle.build 应用程序编译并启动。
我(再次)在我的项目中遇到支持库问题。我想在我的应用程序中使用 RenderScript 库进行一些图像处理。这个项目是我从别人那里接手的,也是我迄今为止的第一个 Android Studio/gradle 项目。因此,我仍然缺乏经验,尤其是关于所有这些 gradle 配置文件。
问题是:我在应用程序模块中的 build.gradle 文件中包含了以下几行:
defaultConfig {
...
renderscriptTargetApi Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
renderscriptSupportModeEnabled true
...
}
project.ANDROID_BUILD_TARGET_SDK_VERSION 已在 gradle.properties 中同时设置为 15 和 22,这没有实际区别。
但是,我每次编译项目时总是会出现这样的错误:
Error:(12, 39) error: package android.support.v8.renderscript does not exist
真正奇怪的是:如果我从头开始创建一个新项目并在应用程序模块中的 build.gradle 中包含相同的两行,我可以使用 RenderScript classes 而无需问题。所以我认为我的一般配置不会有问题,但必须以某种方式与项目相关。尽管 gradle 脚本中的行正确,我只是不确定有什么会导致这种行为并禁用软件包。
有一件事可能很重要,让我从一开始就想知道:当我第一次将这些行添加到 gradle 脚本并在我的 class 文件中创建导入语句时,Android studio 询问是否应该将一些支持库 jar 文件作为库导入。我不知道为什么需要这样做,因为据我所知,支持 classes 不需要任何额外的设置。我同意导入它,但正如我上面所说的,仍然找不到包和 classes。
我项目中的完整 build.gradle 文件(不 工作):
apply plugin: 'com.android.application'
android {
compileSdkVersion Integer.parseInt(project.ANDROID_COMPILE_SDK_VERSION)
buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
defaultConfig {
applicationId 'com.some.app'
multiDexEnabled = true
renderscriptTargetApi Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
renderscriptSupportModeEnabled true
minSdkVersion Integer.parseInt(project.MIN_SDK)
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
}
signingConfigs {
signingConfigs {
debug {
storeFile file('<some file>')
keyAlias 'xxx'
keyPassword 'xxx'
storePassword 'xxx'
}
release {
storeFile file('<some file>')
keyAlias 'xxx'
keyPassword 'xxx'
storePassword 'xxx'
}
}
}
buildTypes {
release {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.release
debuggable false
jniDebuggable false
zipAlignEnabled true
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
dexOptions {
javaMaxHeapSize "4g"
}
}
dependencies {
compile 'com.android.support:appcompat-v7:22.2.0+'
compile 'com.android.support:support-v4:22.2.0+'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':firebase_plugin')
compile project(':geofire')
compile 'com.android.support:multidex:1.0.0'
compile files('libs/acra-4.5.0.jar')
}
虚拟项目中应用程序模块的 build.gradle 文件( 有效):
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.self.bitmapscaletest"
minSdkVersion 15
targetSdkVersion 22
renderscriptTargetApi 15
renderscriptSupportModeEnabled true
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
}
较大的项目有多个模块,这会是个问题吗?我还必须调整那些其他模块的 gradle 脚本吗?
提前致谢!
发布后不久我似乎已经解决了它。不同的模块确实似乎是问题所在。将这两行添加到其他模块后 gradle.build 应用程序编译并启动。