当前位置: 首页 > 知识库问答 >
问题:

Android Studio AndroidManifest.xml与Build.Gradle

蔺霄
2023-03-14

如果有人能帮助我了解一些关于Android Studio的事情,那将是最有启发的。

所以,大约一个月前,我从Eclipse转到了Android Studio,到目前为止,我只在开发我的迁移应用程序。因此,我只是按照Eclipse中的惯例对AndroidManifest.xml文件进行了修改。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion '22.0.1'

    defaultConfig {
        applicationId "com.myapp"
        minSdkVersion 15
        targetSdkVersion 22
        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:support-v4:22.2.0'
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.android.support:mediarouter-v7:22.2.0'
}
apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':google-play-services_lib')
}

android {
    compileSdkVersion 21
    buildToolsVersion '22.0.1'

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}

targetedSdkVersion-我自己对应用程序的最佳运行条件的偏好?

buildToolsVersion-我读到这必须总是使用最新的版本。有人能解释为什么吗?

现在回答我关于显化与等级的问题:

作为问题1的扩展,当两个文件之间存在差异时会发生什么(如果有人因为某种原因忘记了,并决定在其中一个文件中添加内容?)

由于两者之间存在重复属性,这是否意味着从Android Studio生成的应用程序开始,我根本不需要接触AndroidManifest.xml?

那么 如何使应用程序在找不到活动时不会强制关闭?Build.Gradle会自动处理吗?或者控制方向和其他更好的特性(我是否只能修改Android Studio上的java文件?)

问题:这是因为Google为每个新的Sdk创建一个新的buildtools版本,并且更高的版本是向后兼容的吗?因此,较高的buildtools将构建较低的compileSdkVersion,而相反的则不是真的,对吗?

共有1个答案

边永贞
2023-03-14

我将尝试解决尽可能多的问题,但我首先建议您不要使用从eclipse迁移生成的build.gradle。在Android Studio中创建一个新项目,并使用它生成的build.gradle作为您应该使用的模板,即将其内容复制到您的实际项目中并更改有意义的值。花点时间去理解和建造。正确的等级,它将为你节省未来的时间。还要尽可能地模拟新项目的文件结构。gradle的伟大之处在于它(通常)会给你带来有意义的错误。

compileSdkVersion-必须始终使用最高版本以最大程度地兼容较新的电话?

targetedSdkVersion-我自己对应用程序的最佳运行条件的偏好?

build.gradle将覆盖AndroidManifest.xml文件中的值,但为了避免混淆,我将把上面提到的所有值放入build.gradle中,并从清单中删除它们。那才是他们的归宿。build.gradle可以做一些非常酷的事情,它可以覆盖清单中的值,甚至可以合并两个清单文件。

由于两者之间存在重复属性,这是否意味着从Android Studio生成的应用程序开始,我根本不需要接触AndroidManifest.xml?

那么当应用程序找不到活动时不会强制关闭呢?Build.Gradle会自动处理吗?或者控制方向和其他更好的特性(我是否只能修改Android Studio上的java文件?)

也正确!

 类似资料:
  • 在C语言中,假设每个算法被赋予完全相同的一组进程,那么先到先得、最短作业优先和循环之间的周转时间是否相等?还是调度算法不同?

  • 问题内容: 为了为 HTML5 Doctype 定义字符集,我应该使用哪种表示法? 短: 长: 问题答案: 在HTML5中,它们是等效的。使用较短的一个,更容易记住和键入。浏览器支持很好,因为它是为向后兼容而设计的。

  • 连接的多个输入都相当于Yes的时候才会输出Yes。 用法 Your browser does not support the video tag. 案例:小闹钟 功能:今天15:10:00,响起猫叫声小闹钟 工作原理 当所有的输入都是Yes的时候,与节点才输出Yes。

  • 问题内容: 似乎有三种 相同的 方法可以独立于平台获取依赖于平台的“文件分隔符”: 我们如何决定何时使用哪个? 它们之间甚至有什么区别吗? 问题答案: 可以通过调用命令行参数或使用命令行参数覆盖 获取默认文件系统的分隔符。 获取默认文件系统。 获取文件系统的分隔符。请注意,作为一种实例方法,在需要代码在一个JVM中对多个文件系统进行操作的情况下,可以使用该方法将不同的文件系统传递给代码(而不是默认

  • 问题内容: 我今天刚刚与一些同事讨论了python的db-api fetchone vs fetchmany vs fetchall。 我确定每个应用程序的用例都取决于我正在使用的db-api的实现,但是总的来说,fetchone,fetchmany,fetchall的用例是什么? 换句话说,以下等效项是什么?还是其中之一比其他人更受青睐?如果是这样,在哪些情况下? 问题答案: 我认为这确实取决于