我在android开发页面上查看'产品风味'并希望探索我的选项,因为我必须将现有应用转换为可根据多个客户的需求轻松修改的应用。
考虑到我尝试引入产品风味,但每当我尝试在1-2次活动后运行它时,屏幕保持空白,默认背景就位,我的adb控制台上出现了很多类def def not found错误
我的项目结构如下:
/应用/ SRC /主/
/应用/ src目录/主/资产/
/应用程序/ SRC /主/爪哇/
/应用程序/ SRC /主/ jniLibs /
/应用程序/ SRC /主/ RES /
/app/src/main/AndroidManifest.xml
/应用/ SRC / productflavor /
/应用程序/ SRC / productflavor / RES
/应用程序/ SRC / productflavor / RES /值/
/app/src/productflavor/res/values/strings.xml
此strings.xml ^只有一个更改,可以更改“app_name”值以更改应用程序的名称。
到目前为止我的想法是来自'main'源目录的文件被包含(组合?)与flavor分支中的文件,所以不应该将main中的文件自动提供给产品flavor的目录?
关于运行时未找到类错误的错误:
- 如果我将所有资源(即所有图像/字符串等资源)从'res'文件夹复制粘贴到flavor的res目录中,那将会破坏具有公共代码库并引入代码冗余的目的。 />
- 我应该将现有代码作为模块,然后只有我的独立产品风格(即/ app / src / main / *中没有)并使用gradle中的compile标签来编译并按原样包含模块?我想我可以在特定风格中使用自定义布局文件但是如果将来我需要在现有类中更改应用程序的功能以获得特定风味,那么我将如何确保其工作并且不会影响功能其他的味道?
答案 0 :(得分:0)
处理产品风格的方法是保持主要目录中的任何资源共享,但是它们具有不同的任何内容必须分离到每个风格的相应目录中。如果您在活动中有特定的风味,则必须将其从/ main中删除,并将两个版本放在每个风格等效目录中。