3

这是我的问题。我有一个运行良好的应用程序。我希望同一个应用程序有两个不同的包名称和可绘制文件夹。所以这就是我所做的,

productFlavors {
    AppOne {
        applicationId 'com.AppOne'//Package name for AppOne
    }
    AppTwo{
        applicationId 'com.AppTwo'//Package name for AppTwo
    }
}

然后我在我的 src 中创建了两个不同的文件夹。项目结构看起来像这样,

src
   -> AppOne
          ->drawable
                    ->Image for AppOne
   -> AppTwo
          ->drawable
                    ->Image for AppTwo
   -> UnchangedApp
          ->drawable
                    ->Image for someImage

据我了解,当我从 Flavor AppTwo 进行构建时,将使用“AppTwo 的图像”(如果我没记错的话)。这也适用于单独的包名称和单独的图标。问题是我的原始文件夹中有一个本地 html 文件。我在这样的代码中引用它

Webview.loadUrl("file:///android_res/raw/mytemplate.html");

两个应用程序的 html 文件也会发生变化。所以我为这两种风格创建了原始文件夹。现在项目结构是这样的

src
   -> AppOne
          ->drawable
                    ->Image for AppOne
          ->raw
                    ->mytemplate.html
   -> AppTwo
          ->drawable
                    ->Image for AppTwo
          ->raw
                    ->mytemplate.html
   -> UnchangedApp
          ->drawable
                    ->Image for someImage
          ->raw
                    ->sometemplate.html

现在,当我使用风味 1 或风味 2 运行我的应用程序时,我在 webview 上遇到错误,例如找不到文件:///android_res/raw/mytemplate.html。

我在做什么错。可绘制文件夹中的图标正在更改,但原始的 html 文件没有。任何人都可以帮忙。任何帮助,将不胜感激。

谢谢

4

1 回答 1

0

您的目录结构不遵循 android studio 假定的约定。你的项目结构应该是这样的。

app/src/your_flavor/java其中包含您的 java 源代码

app/src/your_flavor/res其中包含您的应用程序资源,在此res目录下,您可以拥有正常的资源目录,例如drawable layout raw,等。

于 2016-02-16T16:44:46.950 回答