Android Studio 1.0和错误“库项目无法设置applicationId”


109

将Android Studio更新为1.0后,我看到此错误:

错误:库项目无法设置applicationId。 在默认配置中,applicationId设置为“ com.super.app”。

我按照建议更新了Gradle插件,但我不知道如何解决此问题。

Answers:


208

根据此信息

图书馆项目中的ApplicationId

您不能使用applicationId来定制库项目的程序包。包名称必须在库项目中固定(并在清单中指定为packageName)。Gradle插件较早没有实施此限制。

从库build.gradle文件中删除applicationId变量应该可以解决此问题。


谢谢,您将我带向正确的方向。我添加了一个答案,解释了我遇到的“味道”问题。
塞拉芬

1
@Joel:我将模块转换成一个库,但是我找不到要删除的ApplicationId。在build.gradle文件中,ApplicationId不是dr。你能告诉我在哪里,我可以在Android Studio中找到1.0.1
库马尔

尽管此链接可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。如果链接的页面发生更改,仅链接的答案可能会无效
Nerdroid

62

感谢Joel的正确回答:我只需要从te .gradle文件中删除1行:

defaultConfig {
        applicationId "com.super.app"   <---- remove this line
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }

变成

defaultConfig {
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }

和我的AndroidManifest.xml

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.super.app">
...

如果您不需要重命名应用程序的程序包名称,则这是正确的解决方案。要重命名它,您需要使用“味道”:

android {
   ...
   productFlavors {
       flavor1 {
           applicationId 'com.super.superapp'
       }
   }

不好的两个答案无法检查,因为您提供了乔尔应有的示例。
Androidcoder

1
如果我删除了applicationID行,是否可以在Play商店中发布它(我的意思是更新),因为Google Play没有应用程序ID。
gurkan堆栈

1
@gurkanstack如果您删除Gradle文件中的行,则将使用AndroidManifest.xml“包”中定义的名称空间进行发布。
塞拉芬

1

以防万一它有助于一些:

当我将eclipse项目导入android studio时,出现错误::

“错误:应用程序和测试应用程序ID不能相同”

虽然很奇怪,但是我查看了build.gradle,发现了两个占位符,一个占位符用于应用程序,另一个占位符用于testapplication。

我按照这篇文章中的建议从中删除了testApplicationId,这帮助我解决了问题。

注意:此说明与此问题中发布的错误无关,但可能会帮助遇到类似错误的人。


0

您不能为您的库定义applicationId。但是,如果要在构建文件中使用一个标识符,该标识符将为您提供库包名称,则可以为模块定义一个变量,然后根据需要使用该值。

例如:图书馆的build.gradle

apply plugin: 'com.android.library'

def libraryGroupId = 'com.google.example'
def libraryArtifactId = project.getName()
def libraryVersion = '1.1'

另外,您可以根据需要在lib中的构建文件本身中使用以下值。

android {
compileSdkVersion 28

defaultConfig {
    minSdkVersion 21
    targetSdkVersion 28
    versionCode 1
    versionName "$libraryVersion"
    resValue "string", "Library", libraryGroupId"
 }
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.