切换笔记本电脑和克隆存储库后 Flutter 包名称冲突

问题描述 投票:0回答:1

问题概述:

我正在我的旧笔记本电脑上开发 Flutter 项目,一切都很好。将项目代码存储在 GitHub 上后,我将存储库克隆到一台新笔记本电脑上以继续开发。然而,在设置环境并运行项目后,我遇到了无法解决的包名称冲突

我已尝试了多种故障排除步骤,但问题仍然存在。我需要帮助解决这个问题。

我采取的步骤:

  1. 在新笔记本电脑上克隆存储库并安装所有必要的依赖项。
  2. Ran
    flutter clean
    删除所有缓存的文件。
  3. Ran
    flutter pub get
    flutter pub upgrade
    来更新依赖项。
  4. 删除了
    pubspec.lock
    文件并使用
    flutter pub get
    重新生成它。
  5. flutter --version
    检查了Flutter版本,确保新旧笔记本电脑版本相同。
  6. 验证了 Android 项目的
    applicationId
    和 iOS 项目的包标识符。
  7. 使用
    flutter pub cache repair
    重新安装了 Flutter 依赖项。
  8. 清除所有本地设备缓存并从模拟器/设备中卸载应用程序。
  9. 检查是否存在任何可能导致问题的未解决的 Git 合并冲突。

错误信息:

我看到的确切错误消息是:

田 Console ↑ ↓ Launching 1ib\main_development.dart on SM M146B in debug mode.... Running Gradle task 'assemble DevelopmentDebug' ✓ Built build\app\outputs\flutter-apk\app-development-debug.apk Installing build\app\outputs\flutter-apk\app-development-debug.apk... Error: ADB exited with exit code 1 Performing Streamed Install adb: failed to install C:\Users\***\Desktop\***Project\Fronted\****\******-flutter\build\app\outputs\flutter-apk\app-development-debug.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Existing package com.****.***.dev signatures do not match newer version; ignoring!] Error launching application on SM M1468.

环境:

Flutter 3.22.1 • 通道稳定 • https://github.com/flutter/flutter.git 框架 • 修订版 a14f74ff3a(7 个月前) • 2024-05-22 11:08:21 -0500 发动机 • 修订版 55eae6864b 工具 • Dart 3.4.1 • DevTools 2.34.3

到目前为止我尝试过的:

  • Flutter clean 和 pub get:我已经多次运行
    flutter clean
    flutter pub get
  • 检查版本不匹配:已验证两台笔记本电脑具有相同版本的 Flutter/Dart。
  • 检查Android/iOS配置:确保
    build.gradle
    Info.plist
    中的包名称设置正确。
  • 已清除缓存:运行
    flutter pub cache repair
    来修复任何损坏的缓存。

问题:

有人在将 Flutter 项目从一台笔记本电脑移动到另一台笔记本电脑时遇到过类似的包名称冲突吗?我可以采取哪些步骤来解决问题并确保项目在新机器上正确运行?

该项目应该在我的新笔记本电脑上成功构建并运行,没有任何包名称冲突。

flutter conflict
1个回答
0
投票

INSTALL_FAILED_UPDATE_INCOMPATIBLE 错误停止,因为当 APK 签名并尝试安装时,与已存在的版本签名不一致:

  1. 应用程序版本密钥已更改,例如从开发版本更改为生产版本。
  2. 它涉及安装包的包名称变体,但在设备上具有相同的密钥。

解决方案:

  1. 安装新版本之前卸载现有应用程序。

解决方案

adb卸载com.*..dev

再次运行应用程序

颤抖奔跑

  1. 在 Flutter 中启用
    --no-shared-runtime

如果您使用不同的分支(生产和开发),为避免签名冲突错误,请确保版本完全独立。

android {
    flavorDimensions "default"
    productFlavors {
        development {
            applicationId "com.example.myapp.dev"
        }
        production {
            applicationId "com.example.myapp"
        }
    }
}
  1. 使用相同的签名密钥: 如果问题仍然存在,请尝试更改应用程序中的签名密钥,并尝试检查文件中的密钥是否相同
    android/app/build.gradle

`

signingConfigs {
    release {
        keyAlias 'your-key-alias'
        keyPassword 'your-key-password'
        storeFile file('your-key.jks')
        storePassword 'your-store-password'
    }
}

`

© www.soinside.com 2019 - 2024. All rights reserved.