【问题标题】:Why application built with Ionic Framework substitute another Ionic app while installation on Android device为什么使用 Ionic 框架构建的应用程序在 Android 设备上安装时会替换另一个 Ionic 应用程序
【发布时间】:2021-12-30 15:33:27
【问题描述】:

我使用 Ionic 框架 (Angular) 开发了一些应用程序。 当我构建一个 .apk 文件并将其安装到 Android 设备时,新的应用程序会替换(删除旧的)之前安装的旧应用程序。 当我在 Android Studio 中开发原生应用时,我没有遇到这样的问题。

我搜索了 Ionic documentation,但没有找到这个问题。 我只有一些建议,即在使用一些标志(例如 --release)构建或签署应用的 apk 文件后问题将得到解决。

ISSUE是“android”文件夹已经存在。所以我在答案中描述了解决方案。 只有在首次添加 android/ios 之前未更改应用 ID 时才会出现此问题。

在整个项目中搜索“com”

12 results - 6 files

android/build.gradle:
       9      dependencies {
      10:         classpath 'com.android.tools.build:gradle:7.0.4'
      11:         classpath 'com.google.gms:google-services:4.3.5'
      12  

android/app/build.gradle:

       1: apply plugin: 'com.android.application'
       2  

      46      if (servicesJSON.text) {
      47:         apply plugin: 'com.google.gms.google-services'
      48      }

android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java:

       1: package com.getcapacitor.myapp;
       2  
    
      23  
      24:         assertEquals("com.getcapacitor.app", appContext.getPackageName());
      25      }

android/app/src/main/assets/capacitor.plugins.json:
  

     3          "pkg": "@capacitor/app",
       4:       "classpath": "com.capacitorjs.plugins.app.AppPlugin"
       5    },
    
       7        "pkg": "@capacitor/haptics",
       8:       "classpath": "com.capacitorjs.plugins.haptics.HapticsPlugin"
       9    },
    
      11        "pkg": "@capacitor/keyboard",
      12:       "classpath": "com.capacitorjs.plugins.keyboard.KeyboardPlugin"
      13    },
    
      15        "pkg": "@capacitor/status-bar",
      16:       "classpath": "com.capacitorjs.plugins.statusbar.StatusBarPlugin"
      17    }

android/app/src/main/java/io/ionic/starter/MainActivity.java:

      2  
      3: import com.getcapacitor.BridgeActivity;
      4  

android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java:

      1: package com.getcapacitor.myapp;
      2  

【问题讨论】:

  • 如果您使用的是 Capacitor,则必须更改 capacitor.config.ts 中的包 ID,或者如果您使用的是 cordova,则必须更改 condifg.xml。这两个文件都将位于项目的根目录中。

标签: android angular ionic-framework


【解决方案1】:

您必须更改 config.xml 中的包名称。因为新的应用程序包名与其他应用程序相同。

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
  • 没有config.xml文件
【解决方案2】:

您的应用程序可能在 config.xml 中有一个名为“com.example.app”的包,因此您必须更改为类似“com.dziamid.thatawesomeapp”的内容,然后您的下一个应用程序将有一个包'com.dziamid.evenmoreawesomeapp' 等。如果你在使用电容器,请检查电容器.config.json 中的 appId 和 appName。

【讨论】:

  • 没有config.xml文件
  • 您是否尝试过在您的项目中搜索“com.example.app”?搜索结果可能会指向您需要更改的文件/值。如果该搜索失败,请搜索“com”。 (带点)并查找通用包名称。
  • 感谢您的关注。请您指出更改包裹ID的确切位置是什么?我用代码搜索结果编辑了问题。
  • 好的,我解决了
【解决方案3】:

解决了!

  1. 删除“android”文件夹
  2. 将 appId 更改为:capacitor.config.ts 中的 'io.ionic.yourApp'
  3. cmd ionic cap add android(在此之前我也重建了“www”文件夹)就是这样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-16
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    • 2018-05-03
    相关资源
    最近更新 更多