Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
迁移到Android Studio将导致为“安装多个应用程序”;单个主项目多个图书馆项目”;_Android_Eclipse_Android Studio - Fatal编程技术网

迁移到Android Studio将导致为“安装多个应用程序”;单个主项目多个图书馆项目”;

迁移到Android Studio将导致为“安装多个应用程序”;单个主项目多个图书馆项目”;,android,eclipse,android-studio,Android,Eclipse,Android Studio,我有 定义和 多个库项目,其中一些项目定义了和 当我使用Eclipse构建和运行带有多个库项目的单个主项目时,只会安装一个应用程序 但是,如果我迁移到Android Studio来构建并运行带有多个库项目的单个主项目,将安装多个应用程序 根据有多少项目(无论是主项目还是库项目)定义和 我想知道,在我构建和运行项目时,是否有我在Android Studio中所做的错误配置导致安装多个应用程序 目前,我唯一的解决方法是从所有库项目的AndroidManifest.xml中删除这些行(和)。在an

我有

  • 定义
  • 多个库项目,其中一些项目定义了
当我使用Eclipse构建和运行带有多个库项目的单个主项目时,只会安装一个应用程序

但是,如果我迁移到Android Studio来构建并运行带有多个库项目的单个主项目,将安装多个应用程序

根据有多少项目(无论是主项目还是库项目)定义

我想知道,在我构建和运行项目时,是否有我在Android Studio中所做的错误配置导致安装多个应用程序

目前,我唯一的解决方法是从所有库项目的
AndroidManifest.xml
中删除这些行(
)。在androidstudio中导入项目库是一种常见且正确的方法吗?在Eclipse中,这些行不会在我的设备中安装额外的应用程序

这就是我的项目结构的样子

正如您所看到的,第一个文件夹图标看起来与其他文件夹图标不同。我想这表明,第一个文件夹图标是主项目,其他的是库项目


如果只有一个主项目,为什么会安装多个应用程序?

在Android studio中,一次只能添加一个项目。 如果您有带有project的库,那么您必须在项目中添加整个代码,或者 您可以为库项目创建jar,并将它们添加到项目中

Android studio中还有另一个gradle选项。 如果我们想在项目中使用任何库,我们可以在项目的“build.gradle”文件中添加它们的依赖项

我附上一个屏幕截图的“build.gradle”文件,请参考它

现在,就库项目而言,(如果它对您的项目没有贡献),最好的方法是在Android清单中,您应该只将定义的活动设置为启动器活动,因为在大多数情况下,库AndroidManifest.xml通常包含一些示例活动(应该删除),或者您需要子类化的活动,库项目中应该有最小的已定义内容(可以忽略不计),大多数内容应该在您的清单中,包括所有权限

它也是在android开发者网站上定义的

带有“android.intent.action.MAIN”和 “android.intent.category.LAUNCHER”设置将活动作为 启动一个应用程序的人,也就是说,作为一个应该 显示在应用程序启动器中。中设置的图标和标签 因此,过滤器是启动器中显示的过滤器。”

你也可以参考这个链接。。。

在Eclipse中,仅使用来自主应用程序项目的
AndroidManifest.xml
。在Android Studio(和Gradle构建系统)中,所有清单都合并在一起

清单中
元素内的以下行表示该活动应显示在启动程序菜单中。如果您不希望这样,请删除这些行

<intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>


所有这些都是故意的行为。

还有另一种黑客方式

  • 查看合并的AndroidManifest.xml。它应位于:
    /build/intermediates/manifests/full//AndroidManifest.xml

  • 搜索启动器

  • 标记是工具名称空间中的一个特殊属性,用于表示如何解决冲突的特定决策

    因此,带有标记的
    标记
    tools:node=“remove”
    将告诉Gradle在发生冲突时删除自身。换句话说,我们在某种程度上“强迫冲突”。这有点老套,但很管用


    您始终可以在上述路径中验证合并的AndroidManifest.xml。

    我正在Windows中使用Android Studio 0.8.14。我没有看到您绘制的图标所指向的库模块复选框。您好,您是否有关于“在Eclipse中仅使用主应用程序项目中的AndroidManifest.xml。在Android Studio(和Gradle构建系统)中,所有清单都合并在一起”的参考链接?感谢清单合并在Android Studio中默认启用,在Eclipse中禁用。工作原理:如何在Eclipse中启用:仅删除第2部分:
    <activity
        android:name="com.stockhut.SplashScreenActivity"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" >
            </action>
    
            <category android:name="android.intent.category.LAUNCHER" >
            </category>
        </intent-filter>
    </activity>
    ...
    <activity
        android:name="com.todddavies.components.progressbar.main"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
    
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    
    <activity
        android:name="com.todddavies.components.progressbar.main"
        android:label="@string/app_name" tools:node="remove" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
    
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>