【问题标题】:can't refactor package name - java无法重构包名称 - java
【发布时间】:2013-12-24 00:00:55
【问题描述】:

我正在开发一个使用 android-support-v4.jar 作为库的项目(在我的应用程序的 libs 文件夹中),我想重命名其中的 android.support.v4 包,但我被告知这不能完成,因为该目录不在项目中。

(但我需要它,因为我有 ActionSherlock 作为导入模块,它也使用 android-support-v4 作为依赖项。当我第一次运行应用程序时,我收到错误消息,与两次加载此库有关)

【问题讨论】:

    标签: java android eclipse refactoring rename


    【解决方案1】:

    你不能重构其他人的包结构。并且:你不需要。

    只需从您自己项目的 libs 文件夹中删除该库即可。 IDE 足够聪明,可以从 ActionBarSherlock 获取支持库。 (如果你已经正确导入了)

    【讨论】:

      【解决方案2】:

      在 build.gradle 文件中的 ActionSherlock 模块中

      dependencies {
         compile 'com.android.support:support-v4:+'
      }
      

      在你的主项目中的 build.gradle 文件中

      dependencies {
          compile project(':libraries: ActionSherlockModule')
      }
      

      【讨论】:

        【解决方案3】:

        您的问题可能是以下之一:

        1. 您引用了两个不同版本的 android-support-v4.jar。检查文件签名以确保两个项目使用相同的文件。

        2. 您已在父项目中包含支持库的源代码,并尝试在子项目中提供 jar。建议直接使用 SDK 文件夹中提供的android-support-v4.jar

        换句话说:不,您不应该尝试重命名支持库的包名。

        【讨论】:

        • 是的,我确实有两个不同版本的相同android-support-v4.jar,但是当我删除libs 文件夹中的一个时,我的主要活动中的imports 不再被识别。当我删除ActionBarSherlock 中的那个时,这个不再编译了。我该如何规避这个问题
        • 两个项目都需要这个库;只需确保文件相同即可。
        • 对不起,我是Android 的新手,如何检测它们是否相同?
        • 我从应用程序库目录中复制了支持文件 ActionBarSherlock 之一,我收到此消息:UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoIcsImpl;
        • 这可能意味着该库在类路径中出现了两次。参见the answers in this question,尤其是与嵌套依赖相关的。
        【解决方案4】:

        您应该在两个libs 目录中拥有相同的android-support-V4.jar 副本。只需将libs 上的那个复制到ActionBarSherlock libs 目录中即可。

        【讨论】:

        • 这就是我所做的:我现在收到这条消息UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoIcsImpl;
        • 你用的是什么IDE?
        • 我正在使用intelliJ idea
        • 对不起,我对 IntelliJ 不熟悉
        猜你喜欢
        • 2021-04-04
        • 2017-05-04
        • 2016-12-05
        • 2016-11-01
        • 2023-04-08
        • 2023-03-12
        • 1970-01-01
        • 2012-01-04
        • 1970-01-01
        相关资源
        最近更新 更多