软件包名称与android studio

时间:2015-08-23 03:52:59

标签: java android android-studio package

我正在尝试开发Android app的Udacity课程。enter image description here

上面是我在尝试创建一个安卓测试用例时遇到的错误。

问题是在androidtest folderare下打包的测试类 com.sasharma.android.sunshine.test但每当我在Androidtest配置中运行应用程序时,gradle使用相同的软件包名称为androidtest构建bUildCOnfig文件并给出错误“错误:(4,1)错误:package com .sasharma.android.sunshine.test与同名班级发生冲突“

此外,我发现课程教师使用的包名与我使用的包名之间的唯一区别是,他们对包名称有一个额外的“app”,比如src \ main \ java * activity的包名类也是com.sasharma.android.sunshine,但他们的是com.sasharma.android.sunshine .test,同样适用于androidTest目录下的包名

提前致谢!!!

9 个答案:

答案 0 :(得分:3)

我通过更改app\build.gradle中的 applicationId 来修复了同样的问题并重建了项目。 build.gradle中的 applicationId package中与appname连接的AndroidManifest.xml名称相同。

改变之前:

的build.gradle

defaultConfig {
    applicationId "com.mypackage.MyAppName"
}

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mypackage" >
    <application
        android:name="MyAppName"
    </application>
</manifest>

改变之后:

defaultConfig {
    applicationId "com.mypackage.MyApp"
}

我在两个地方出现了这个错误:

  1. MyProjectName/app/build/genereted/source/buildConfig/androidTest/debug/mypackage/MyClass/test
  2. 中的BuildConfig.java
  3. R.java in MyProjectName/app/build/genereted/source/r/androidTest/debug/mypackage/MyClass/test
  4. 包含package com.mypackage.MyClass.test;报告的错误信息。

答案 1 :(得分:3)

这是一个较晚的答案,但仍然没有一个答案提供了显示此错误的真实原因。

当其中一个包名与一个类名相同时会出现此错误,如下所示:

main 
    java
        com.yourpackage.mycoolapp
             somePackage
                 myclass.java
                 class2.java
             somePackage.java

正如您在包名somePackage和类名somePackage.java上方看到的一样,


要解决此问题,您可以更改包名称或类名称:

右键单击包/类->重构->重命名

完成,无需重建。

答案 2 :(得分:2)

我尝试重建项目并解决问题。

构建 - &gt;重建项目!

答案 3 :(得分:2)

我认为你的项目文件中有test.java文件。 将其重命名为其他内容。

for android-studio click on test.java and  Go to ReFactor-->Rename

Go-to Build - &gt; Rebuild Project。

答案 4 :(得分:1)

更新后,我遇到了同样的错误。

  1. 我删除了Buildconfig.java
  2. 重构 - &gt;重命名,错误类。
  3. 我又把它跑了解决了。
  4. /AndroidStudioProjects/appName/app/build/generated/source/buildConfig/debug/com/example/gurkan0791/appName/BuildConfig.java
    

答案 5 :(得分:0)

如果您将testApplicationId与默认值yourApplicationId.test定义为testApplicationId,也会出现此错误。

作为doc says here

  

默认情况下,构建工具使用附加.test的给定构建变体的应用程序ID将应用程序ID应用于检测测试APK。例如,com.example.myapp.free构建变体的测试APK具有应用程序ID com.example.myapp.free.test。

因此,您不应该使用.test作为默认值applicationId,只需将-0600附加到Date date1 = df.parse("2016-11-18T11:13:43.838-0600Z"); ,但您可以将其更改为其他任何内容,并且可以正常使用。

答案 6 :(得分:0)

如果您的班级名称是“ test”,请将其删除。 我遇到了这个问题并解决了它

答案 7 :(得分:0)

如果Glide库导致了此问题,请确保“ MyAppGlideModule”类不是内部类。

答案 8 :(得分:0)

使用 EventBus 时,我会遇到此问题。

实际上我写错了eventBusIndex,它创建了与我的应用程序ID相同的包名称的文件,并且出错了

代码错误

kapt {
    arguments {
        arg('eventBusIndex', 'MY_APPLICATION_ID')//E.g. "com.me.myappname"
    }
}

固定代码

kapt {
    arguments {
        arg('eventBusIndex', 'MY_APPLICATION_ID.MyEventBus')//E.g. "com.me.myappname.MyEventBus"
    }
}