gpt4 book ai didi

android - 使用 gradle 为构建变体创建 Activity 别名

转载 作者:行者123 更新时间:2023-12-01 16:03:23 26 4
gpt4 key购买 nike

我最近将 4 个相似但独立的应用程序合并到一个 gradle 项目中,并设置 gradle 以使用构建变体来独立部署每个应用程序。因为我已经合并了这些以前独立的项目,所以我需要重命名一些包,包括启动器 Activity 的包。为了保留当前用户群的启动器链接,我想使用 Activity 别名将旧启动器链接指向新的启动器 Activity 。到目前为止,一切都很好。

但是,由于我有多个构建变体,我需要几个不同的别名来链接回新的启动 Activity 。我查看了 gradle 的新 manifest merging solution并研究使用占位符作为别名,但是,当我将占位符放在别名下时,它拒绝确认正确的包。该应用程序将崩溃

Starting: Intent { act=android.intent.action.MAIN 
cat=[android.intent.category.LAUNCHER]
cmp=com.stuart.android.flavor1/${packageName}.NewLauncherActivity }
Error type 3
Error: Activity class {com.stuart.android.flavor1/${packageName}.NewLauncherActivity} does not exist.

下面是我的 list 和 gradle 构建文件中的 Activity 别名。我需要找到一种方法将每个构建变体的包名称插入到我所做的每个构建的别名中。 com.stuart.android.main 是所有风格中的通用包,是新启动 Activity 的位置。我正在使用带有 0.11 Gradle 插件的 Android Studio 0.6.1。任何帮助表示赞赏!

list
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.stuart.android.main"
android:installLocation="auto">
<application android:icon="@drawable/icon" android:label="@string/app_name" android:allowBackup="true" android:theme="@style/appTheme">

<activity android:name=".NewLauncherActivity" android:label="@string/app_name_full"/>

<activity-alias
android:name="${packageName}.OldLauncherActivity"
android:targetActivity="com.stuart.android.main.NewLauncherActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>

</application>

<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19"/>
</manifest>

build.gradle
productFlavors {
flavor1 {
packageName "com.stuart.android.flavor1"
}
flavor2 {
packageName "com.stuart.android.flavor1"
}
flavor3 {
packageName "com.stuart.android.flavor1"
}
flavor4 {
packageName "com.stuart.android.flavor1"
}
}

最佳答案

当您使用 Gradle 设置“packageName”(或“applicationId”)时,您可以尝试

android:name="com.stuart.android.main.NewLauncherActivity" 

代替
android:name=".NewLauncherActivity"

在你的 list 的第 7 行

关于android - 使用 gradle 为构建变体创建 Activity 别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24335204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com