android - 仅包含在特定构建变体中的 Activity

标签 android

假设我有以下构建变体:debugqarelease。是否有可能在 debugqa 的源集中有一个 Activity,但不包含在 release 中?

最佳答案

我想出了如何做到这一点。首先,将 YourActivity.java 从 src/main/ 移动到 src/debug/src/qa/。请务必保持 Activity 在 src/main/ 中的相同目录结构。

您还将从 src/main/AndroidManifest.xml 中删除 Activity 标签。然后使用 Android Studio 的 list 合并通过在新文件 src/debug/AndroidManifest.xmlsrc/qa/AndroidManifest.xml< 中使用以下代码将 Activity 标签添加到原始 list 中:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.example">

    <application
        android:name="MyApplication">
        <activity android:name=".fq_domain.YourActivity"/>
    </application>

</manifest>

最后,像这样混淆对该 Activity 的所有调用:

try {
    Intent intent = new Intent(this, Class.forName("com.example.example.fq_domain.YourActivity"));
    startActivity(intent);
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}

这是在 release 构建的情况下,它不应该崩溃,因为它没有在 list 中定义 Activity。

关于android - 仅包含在特定构建变体中的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40049119/

相关文章:

android - 搜索栏缩略图 onclicklistener

java - Gradle:应用程序看不到从子模块的第二级导入的代码

android 应用程序小部件动态背景颜色与圆角 android 2.3

android - 拦截语音识别

android - 带有文本和图像的自定义按钮

android - 在 Android 上安装 R

android - 基于android中的文件启动Activity

android - 无论如何要为特定的 View / View 组使用 XML 布局文件?

android - 从线程更新 textView

android - 旋转设备时如何防止布局发生任何变化?