假设我有以下构建变体:debug
、qa
和release
。是否有可能在 debug
和 qa
的源集中有一个 Activity,但不包含在 release
中?
最佳答案
我想出了如何做到这一点。首先,将 YourActivity.java 从 src/main/
移动到 src/debug/
和 src/qa/
。请务必保持 Activity 在 src/main/
中的相同目录结构。
您还将从 src/main/AndroidManifest.xml
中删除 Activity 标签。然后使用 Android Studio 的 list 合并通过在新文件 src/debug/AndroidManifest.xml
和 src/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/