我在Android Gradle构建中遇到了问题。简而言之,我创建了两个渠道:
productFlavors{
abcDemoFree{
}
abcDemo{
}
}
每种口味都有自己的Activity(Settings.java)和布局(settings_layout.xml)。从主代码中这两个文件已被删除,因此Settings.java和settings_layout.xml仅存在于各自的口味中。abcDemoFree
- java
- Settings.java
- res
- settings_layout.xml
abcDemo
- java
- Settings.java
- res
- settings_layout.xml
Android Studio 创建了 4 种构建变体:
abcDemoFreeDebug
abcDemoFreeRelease
abcDemoDebug
abcDemoRelease
所有功能都正常,我可以创建符合各种特性的apk。问题是当我切换到一个构建变体时(例如abcDemoDebug),Android Studio会报告来自另一个特性的资源文件中的错误,例如:从abcDemoFreeDegub/res/settings_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
</LinearLayout>
这些行。xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
生成错误:URI 未注册。
如何消除这些错误?或者这是正常的行为吗?