无法在我的设备上安装 2 个 Android 应用程序:一个是另一个的副本,但使用不同的数据库

Posted

技术标签:

【中文标题】无法在我的设备上安装 2 个 Android 应用程序:一个是另一个的副本,但使用不同的数据库【英文标题】:Cannot install 2 Android apps on my device: the one is copy of the other but use different database 【发布时间】:2017-07-28 04:49:07 【问题描述】:

我想在我的设备上安装两个 android 应用程序:一个是另一个项目的复制项目,但会写入不同的 sqlite 数据库(不同的应用程序名称、图标和数据库)。

首先,我创建了应用程序“ItalianWords”,将其安装在我的设备 (HTC Desire X) 上并用单词填写。

接下来,我在 Eclipse 中复制了上述应用程序的项目,将其重命名为“RussianWords”,更改了包名称并将应用程序名称重命名为“RussianWords”(在 AndroidManifest.xml 和 strings.xml 中) ,我确认了对 .project 的更改,我更改了启动器应用程序图标,最后我更改了 Java 文件中的数据库名称和 FTS_VIRTUAL_TABLE 名称,以确保不会覆盖我的“ItalianWords”应用程序数据库。

然后我在我的设备上安装了“RussianWords”应用程序,我惊讶地看到“RussianWords”应用程序图标替换了“ItalianWords”应用程序图标。 “ItalianWords”应用程序已从我安装的应用程序中消失。这个新安装的应用程序的数据库没有数据。

我重新安装了“ItalianWords”应用程序,同样的情况又发生了:“RussianWords”应用程序图标已被“ItalianWords”应用程序图标取代,“RussianWords”应用程序已从我设备安装的应用程序中消失,但幸运的是,“ItalianWords”应用数据库充满了数据!

你知道我该怎么做吗?

非常感谢您!

【问题讨论】:

您是从 gradle 中更改包名还是仅在 java 包/清单中更改包名? 仅在 java 包/清单中。我还在用Eclipse,还没迁移到Android Studio。 【参考方案1】:

在你的情况下,我会做什么,拥有 RussianWords 应用程序:

使用不同的俄语单词包创建一个名为 ItalianWords 的新项目

将所有需要的库和需要的更改复制到意大利语 gradle

从RussianWords 复制您需要的所有类(java、xml 和manifest)并将它们粘贴到ItalianWords 上

Command + shift + r,并将所有旧包名替换为新包名。例如,com.kkats.russianwords 到 com.kkats.italianwords

将清单中的所有内容更改为意大利语。

这对我有用

【讨论】:

以上是关于无法在我的设备上安装 2 个 Android 应用程序:一个是另一个的副本,但使用不同的数据库的主要内容,如果未能解决你的问题,请参考以下文章

我的 Android 应用程序在模拟器上运行,但无法在我的 android 设备上运行

Android Unsigned App 无法安装在设备上

无法在 android 设备上调试应用程序 - Android Studio 2.0

Android Studio拒绝在我的手机上构建和安装任何应用程序

Android 应用无法在某些设备上运行

Sencha Touch 2 轮播无法在 Android 设备上启动