【问题标题】:package name clashes with class of same name error in android studio [closed]包名与android studio中的同名错误类冲突[关闭]
【发布时间】:2015-11-16 17:40:36
【问题描述】:

我正在尝试开发 android 应用程序的 Udacity 课程。

以上是我在第 4 课中尝试创建 android 测试用例时遇到的错误。

问题是androidtest文件夹下的测试类打包在下面 com.saharma.android.sunshine.test 但是每当我在 Androidtest 配置中运行应用程序时,gradle 都会使用相同的包名为 androidtest 构建 bUildCONfig 文件,并给我错误“Error:(4, 1) error: package com .saharma.android.sunshine.test 与同名类冲突”

我还发现课程讲师使用的包名和我使用的包名之间的唯一区别是,他们有一个额外的“应用程序”到包名,比如我的 src\main\java*activity 包名classes 也是 com.saharma.android.sunshine 但他们的是 com.saharma.android.sunshine .test 并且 androidTest 目录下的包名也是如此

提前致谢!!!

【问题讨论】:

  • 您确定没有名为testTest 的类吗?
  • 另外,你为什么不尊重 Java 命名约定呢?类以大写字母开头,包全小写。 android 拼写为android,而不是andorid
  • 感谢@PeterLawrey 指出错误。我在其中一个包中进行了类名测试。因为我是 android studio 的新手,所以很难找到所有的课程。在 Eclipse 中,简单的 CTRL+SHIFT+r 可以帮助我获取课程,但我不知道 android studio 中的等效快捷方式

标签: java android android-studio package


【解决方案1】:

我在使用 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"
    }
}

【讨论】:

    【解决方案2】:

    这是一个迟到的答案,但仍然没有一个答案提供显示此错误的真正原因。

    当您的某个包名称与您的某个类相同时,您会收到此错误,如下所示:

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

    正如您在上面看到的包名somePackage 和类名somePackage.java 具有相同的名称。


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

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

    完成,无需重建。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        如果你有一个名为“test”的类,请将其删除。 我遇到了这个问题并解决了它

        【讨论】:

        • (这篇文章似乎没有为问题提供quality answer。请编辑您的答案,或者将其作为对问题的评论发布)。
        【解决方案5】:

        我通过更改 app\build.gradle 中的 applicationId 解决了同样的问题并重建了项目。 build.gradle 中的我的 applicationIdpackage 名称与来自 AndroidManifest.xmlappname 连接的名称相同。

        改动前:

        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 中的 BuildConfig.java
        2. MyProjectName/app/build/genereted/source/r/androidTest/debug/mypackage/MyClass/test 中的 R.java

        两者都包含package com.mypackage.MyClass.test; 报告的内容有错误。

        【讨论】:

          【解决方案6】:

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

          作为文档says here:

          默认情况下,构建工具会使用给定构建变体的应用 ID(附加 .test)将应用 ID 应用到您的插桩测试 APK。例如,com.example.myapp.free 构建变体的测试 APK 的应用程序 ID 为 com.example.myapp.free.test。

          因此,您不应仅将.test 附加到您的applicationId 中,将testApplicationId 用作默认值,但您可以将其更改为其他任何值,它会正常工作。

          【讨论】:

            【解决方案7】:

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

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

            Go-to Build-->重建项目。

            【讨论】:

              【解决方案8】:

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

              构建->重建项目!

              【讨论】:

                【解决方案9】:

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

                1. 我删除了 Buildconfig.java
                2. 重构-->重命名,错误类。
                3. 我再次运行它解决了。

                /AndroidStudioProjects/appName/app/build/generated/source/buildConfig/debug/com/example/gurkan0791/appName/BuildConfig.java
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-09-07
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多