【问题标题】:Android project with an encapsulated project带有封装项目的 Android 项目
【发布时间】:2016-09-18 01:42:39
【问题描述】:

我不知道是否有可能意识到我要写什么,但我会尽量解释清楚。

  1. 创建一个带有Activity的Android项目,我们可以称之为ModuleProject

  2. 使用其活动创建第二个 Android 项目,我们可以将其称为 MainProject。在一项活动中,我需要展示 ModuleProject 的一项活动。

我想这样做是为了避免安装两个不同的应用程序。用户只应安装“封装”ModuleProjectMainProject

为此,我尝试了:

  1. 使用示例 Activity (MainActivityModule) 创建 ModuleProject。模块名称为app1
  2. 在布局中使用 MainActivity 和 Button 创建一个 MainProject。模块名称为app
  3. 从Android Studio,File,New,Import Module,我选择了ModuleProject的源码;
  4. 从文件、项目结构中,我为模块添加了一个依赖项;
  5. MainProject 的活动中,我正在尝试创建以下意图:

    Intent intent = new Intent(this, MainActivityFirst.class);
    

    但这不起作用,因为我收到以下 Gradle 错误:

TError:Dependency MainProject:app1:unspecified on project app 解析为不支持作为编译依赖项的 APK 存档。文件:C:\MainProkect\app1\build\outputs\apk\app1-release-unsigned.apk

我在 stackoverflow 上搜索了解决方案,有人建议打开模块项目的 build.gradle 文件并进行以下编辑:

 apply plugin: 'com.android.application' --> apply plugin: 'com.android.library'

但现在我得到以下错误:

错误:库项目无法设置 applicationId。 applicationId 在默认配置中设置为“com.aaa.moduleproject”。

有人可以帮帮我吗?提前谢谢你。

【问题讨论】:

    标签: android gradle android-gradle-plugin build.gradle android-library


    【解决方案1】:

    从库的 build.gradle 文件中删除 applicationId 变量。

    【讨论】:

    • 您好,谢谢您的回答。我试过了,编译没有错误,但是我尝试运行 MainProject 的模块,启动 MainActivityModule 而不是 MainActivityProject .为什么?
    • 检查你的运行编辑配置,看看当你点击运行时正在启动什么。
    • 好的,现在它启动了正确的活动,但我发现两个应用程序都已安装。这种行为可以吗?
    • 如果你的意思是它正在创建两个快捷方式,这是因为你的 AndroidManifest.xml 可能在两个活动上都有
    • 哦,好的,你是对的,谢谢!最后一件事:我尝试做同样的事情(封装和开源插件),但是当我尝试创建一个 Intent 来启动模块项目的活动时,Android Studio 找不到它......
    猜你喜欢
    • 2014-02-13
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多