当前位置: 首页 > 知识库问答 >
问题:

Android wear应用程序打包失败,味道不佳

杨和蔼
2023-03-14

我有一个应用程序,其中包括一个wear应用程序。在用真实设备进行调试测试时,所有这些都可以正常工作。我还可以创建释放apk,将磨损apk包在里面。但前提是我的申请只有一种口味。

我想用不同的applicationId维护应用程序的两个版本,但尽管编译时没有错误,但在本例中,两个版本的APK(每种风格一个)并不包含相应的磨损APK。

这是移动应用程序build.gradle的相关部分:

    productFlavors {
    Trial {
        applicationId "com.example.myapp.trial"
        versionName "3.0.1"
        versionCode 301
    }
    Full {
        applicationId "com.example.myapp"
        versionName "3.0.1"
        versionCode 301
    }
}

}

dependencies {
    compile 'com.google.android.gms:play-services:6.1.+@aar'
    wearApp project(':myWearApp')
}

这是相应的wear应用程序版本。格雷德尔:

productFlavors {
    Trial {
        applicationId "com.example.myapp.trial"
        versionName "3.0.1"
        versionCode 301
    }
    Full {
        applicationId "com.example.myapp"
        versionName "3.0.1"
        versionCode 301
    }
}

}

dependencies {
    compile 'com.google.android.support:wearable:1.0.0'
    compile 'com.google.android.gms:play-services-wearable:6.1.71'
}

欢迎任何帮助。谢谢

共有3个答案

白烨煜
2023-03-14

我看到您找到了解决问题的方法,但我的版本将构建配置与风格和应用程序后缀结合起来,以备将来可能需要。对于那些最终通过谷歌搜索到这篇文章的人来说,这也可能是相关信息。

应用程序/build.gradle

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.3'

    signingConfigs {
        debug { ... }
        release { ... }
    }

    defaultConfig {
        applicationId "com.sample.myapp"
        minSdkVersion 14
        targetSdkVersion 23
        versionName "3.0.1"
        versionCode 301
    }

    buildTypes {
        debug {
            applicationIdSuffix ".debug"
            embedMicroApp = true
            minifyEnabled false
            debuggable true
        }
        release {
            embedMicroApp = true
            minifyEnabled true
            zipAlignEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }

    productFlavors {
        trial {
            applicationIdSuffix ".trial"
        }
        full {
            applicationIdSuffix ".pro"
        }
    }
}

configurations {
    trialDebugWearApp
    fullDebugWearApp
    trialReleaseWearApp
    fullReleaseWearApp
}

dependencies {
    ...

    trialDebugWearApp project(path: ':myWearApp', configuration: 'trialDebug')
    fullDebugWearApp project(path: ':myWearApp', configuration: 'fullDebug')
    trialReleaseWearApp project(path: ':myWearApp', configuration: 'trialRelease')
    fullReleaseWearApp project(path: ':myWearApp', configuration: 'fullRelease')
}

穿/造。格雷德尔:

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.3'

    publishNonDefault true

    signingConfigs {
        debug { ... }
        release { ... }
    }

    defaultConfig {
        applicationId "com.sample.myapp"
        minSdkVersion 20
        targetSdkVersion 23
        versionName "3.0.1"
        versionCode 301
    }

    buildTypes {
        debug {
            applicationIdSuffix ".debug"
            minifyEnabled false
            debuggable true
        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }

    productFlavors {
        trial {
            applicationIdSuffix ".trial"
        }
        full {
            applicationIdSuffix ".pro"
        }
    }

    dependencies {
        ...
    }
}
郭瀚海
2023-03-14

父应用程序的风格不会自动传播到Wear项目。你必须明确地映射它。

而不是这个:

dependencies {
    wearApp project(':myWearApp')
}

这样做:

在你的Wear应用程序中:

android {
    publishNonDefault true
}

在家长应用程序中:

dependencies {
    TrialWearApp project(path: ':myWearApp', configuration: 'Trial')
    FullWearApp project(path: ':myWearApp', configuration: 'Full')
}
左丘善
2023-03-14

感谢斯科特给我的线索,这是完整的解决方案:

1.)口味必须小写

2.)依赖项配置必须包括flavorRelease

3.)在android{}下的Wear应用程序buil gradle中,我们必须包含PublishNonfault true

所以对于移动应用的构建。格雷德尔:

android {

......

productFlavors {
    trial {
        applicationId "com.sample.myapp.trial"
        versionName "3.0.1"
        versionCode 301
    }
    full {
        applicationId "com.sample.myapp"
        versionName "3.0.1"
        versionCode 301
    }
 }
}

dependencies {
    trialWearApp project(path: ':myWearApp', configuration: 'trialRelease')
    fullWearApp project(path: ':myWearApp', configuration: 'fullRelease')
}

以及wear应用程序构建。格雷德尔:

android {

  publishNonDefault true
......

productFlavors {
    trial {
        applicationId "com.sample.myapp.trial"
        versionName "3.0.1"
        versionCode 301
    }
    full {
        applicationId "com.sample.myapp"
        versionName "3.0.1"
        versionCode 301
    }
 }
}
 类似资料:
  • 为缓解 Windows 下路径名过长的 问题, 略微加快一下 require的速度以及隐藏你的源代码,你可以选择把你的应用打包成 asar档案文件,这只需要对你的源代码做一些很小的改动。 大部分用户可以毫不费力地使用这个功能,因为它electron-packager,、electron-forge和electron-builder中都得到了支持,开箱即用。 如果你没有使用这些工具中的任何一个,那么

  • 我正在尝试用glew/glfw构建一个OpenGL应用程序。我下载了二进制文件,将它们放在文件夹的根目录中,将路径添加到include和lib目录,并告诉我的项目需要glew32。lib,GLFW。lib和opengl32。lib。 我甚至复制了glew32。因为我的项目看不到,所以将lib添加到根目录。 我必须保留项目目录中的所有依赖项,因为我将分发它。我不知所措。 现在,当我运行我的程序时,它

  • 我运行< code>heroku open时出现应用程序错误。我查了日志,这是: 2016-06-19T05:22:44.640391 00:00 heroku[路由器]:at=错误代码=H10 desc=“应用程序崩溃”方法=获取路径=“/”主机=drawparty-.herokuapp。com request_id=6712804b-95f9-49ce-92a5-7f45df7bb79e fw

  • 在我尝试运行ionic cordova应用程序后,这个错误随机出现。这不仅发生在我一直在工作的分支上,也发生在我尝试运行的其他分支上,这让我相信这是我的机器的问题。我尝试重新启动并重新安装这些软件包,但问题仍未解决。

  • 我有一个付费和免费的Android应用程序,并一直致力于包括“即时”功能。我不希望现在尝试按钮出现在我的付费版本,所以我想禁用我的付费口味的即时应用程序模块。我该怎么做呢?

  • 我试图使用argocd部署一个spring应用程序的Kubernetes集群,但我在其中遇到了错误。我首先使用GitLab ci管道构建docker映像,然后使用argocd进行连续部署。错误是: 我没有得到任何解决这个问题的方法,如果有人对此有任何想法,请回复。 这是我的配置文件: 这是我的申请。配置所有内容的yml文件。 谢谢