build.gradle警告'避免在版本号中使用+'

时间:2017-10-17 15:32:28

标签: android android-studio gradle libraries android-appcompat

这是我的private void scrollview_SizeChanged(object sender, SizeChangedEventArgs e) { image.Width = scrollview.ViewportWidth; image.Height = scrollview.ViewportHeight; } 应用级文件。

build.gradle

Android Studio突出显示该行

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"
    defaultConfig {
        applicationId "it.myco.app.myproj"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    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.+'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
}

带有消息

  

避免在版本号中使用+会导致不可预测和   不可重复的构建

此行由Android Studio自动生成。为何会出现此警告信息我需要写什么来解决警告?

6 个答案:

答案 0 :(得分:6)

有一天,其他人可能会对您的代码执行git pull,然后尝试构建apk。这个apk可能有不同的行为,甚至会出现构建错误或运行时错误,因为依赖项版本可能与创建此代码时使用的依赖项不同。

您应该使用显式依赖项版本。我建议使用最新版本。您可以在bintray jcenter上搜索以查看最新版本。如果您使用的是Android Studio,File -> Project Structure -> Modules -> (your module, app usually) -> Dependencies -> Add library dependency (click the + sign)会为您提供最新版本,甚至会自动添加库。

答案 1 :(得分:1)

将其替换为最新版本的库。当alt + enter发出警告时,通常AS会显示最新版本。

More info on the reasons

答案 2 :(得分:1)

您可以使用类似

的内容
compile 'com.android.support:appcompat-v7:26.1.0'

答案 3 :(得分:1)

不要在依赖版本中使用+。这意味着Android工作室将使用最新的库,这可能会在未来引起问题。在android studio中,建议使用相同版本的所有android库,假设您正在使用+,如果任何单个库得到更新,那么android studio将使用该更新的库,因此该库的版本将会更改。这会导致构建应用程序的问题。

这就是为什么gradle给出这个警告。最佳做法是编写完整版本号而不是+。

答案 4 :(得分:1)

这是一个正常的警告。

选择具体版本比选择那样更好。这是因为如果您使用“+”它将选择最新的,所以在新版本中,您可能会得到一些不赞成或意外的更改,这将使您的应用程序死亡。认为如果你在一个巨大的项目中使用它,你会有很多依赖,所以这将是一个混乱的环境。

使用特定版本,如果有新版本,请手动更新。

要解决警告并选择最新版本,如果您使用的是Windows,请单击Alt + Enter,它将选择最新版本。

如果它不起作用,您将不得不在互联网或项目结构中搜索它>模块>(您的模块)>依赖性> +

答案 5 :(得分:1)

  

为什么会出现此警告信息?

在这里,您可以找到关于此主题的good blog

动态版本为您的构建添加了不确定性

  • 依赖关系可能会意外地将行为更改引入您的应用。

  • 相同的源码基于两个 不同的机器可以不同。

  • 同样,构建在同一台机器上但是 在不同的时间可以有所不同

  • 过去的版本不可以 完美再现。这使得难以安全地恢复。

  • 有 如果一个坏演员引入了恶意攻击,会对安全产生影 依赖的版本。
  

我需要写什么来解决警告?

始终明确指定您的依赖项版本。