为什么我得到:“ preserveIconSpacing是私有的”错误

时间:2018-10-21 06:43:14

标签: android android-studio

我接受了我的一个旧的android项目,该项目是几年前在Eclipse Luna上开发的,并试图恢复它。

我已将其导入到android studio中,并被告知可以将其转换为自己的格式,并且我可以继续进行开发。

在抛出所有初始链接和版本兼容性错误之后,我陷入了以下错误,无法通过它:

c:\....\MyProjectFolder\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:643: error: resource android:attr/preserveIconSpacing is private.

解决这个问题还是合法错误?

这是我的build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "28.0.3"

    defaultConfig {
        applicationId "com.eibimalul.smartgallery"
        minSdkVersion 16
        targetSdkVersion 22
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:gridlayout-v7:19.1.0'
    compile 'com.android.support:appcompat-v7:19.1.0'
    compile files('libs/robobinding-0.8.3-jar-with-dependencies.jar')
    compile files('libs/simple-xml-2.7.1.jar')
    compile files('libs/universal-image-loader-1.9.2.jar')
}

只需清除解决方案: 借助 Mohsen 下面的答案,该错误的解决方案是:

  1. 我已经按照 Mohsen's 的回答更改了build.gradle的内容,更新了旧的依赖项,并将编译更改为实现-错误消失了。
  2. 我已遵循解决方案here来消除我遇到的第二个错误(资源整数/ google_play_services_version)-请参见下面的内容。

我现在有第三个错误,但似乎与第一个错误无关,所以我认为主要问题已解决。

1 个答案:

答案 0 :(得分:2)

  

values.xml:643:错误:资源android:attr/preserveIconSpacing是   私人的。

您正在使用 私有资源 ,因此才出现此问题。

注释该行或将其删除将有助于继续进行操作。


更新:这是更改后的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.3"

    defaultConfig {
        applicationId "com.eibimalul.smartgallery"
        minSdkVersion 16
        targetSdkVersion 28
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    implementation 'com.android.support:gridlayout-v7:28.0.0'
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation files('libs/robobinding-0.8.3-jar-with-dependencies.jar')
    implementation files('libs/simple-xml-2.7.1.jar')
    implementation files('libs/universal-image-loader-1.9.2.jar')
}

我只是更改了appcompatcompileSdkVersion等的版本以进行更新。另外,如果这样做没有帮助,因为这些库已经足够老了(例如 Date(2013年7月8日) ),也许您应该将它们替换为最新的依赖项。

例如,添加:

implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

代替compile files('libs/universal-image-loader-1.9.2.jar'),因为它可以从在线存储库下载库,而无需手动添加。

也使用implementation代替compile

如果错误仍然出现,请检查此链接并以以下方式添加simple-xml:https://stackoverflow.com/a/19455878/4409113