上面是我在尝试创建一个安卓测试用例时遇到的错误。
问题是在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目录下的包名
提前致谢!!!
答案 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"
}
我在两个地方出现了这个错误:
MyProjectName/app/build/genereted/source/buildConfig/androidTest/debug/mypackage/MyClass/test
MyProjectName/app/build/genereted/source/r/androidTest/debug/mypackage/MyClass/test
包含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)
更新后,我遇到了同样的错误。
/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"
}
}