我根据这个文档为flavors构建(谷歌和华为(设置了我的项目-https://developer.huawei.com/consumer/en/doc/development/AppGallery-connect-Guides/agc-config-flavor.
这是我的构建脚本。我已经尝试在发布版本中包含签名,但没有任何更改。
app build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.myapp.testapp"
}
flavorDimensions "platform"
productFlavors {
huawei {
versionCode 1712
versionName "1.7.12"
targetSdkVersion 29
minSdkVersion 26
buildTypes {
resValue("string", "ad_app_id", "103959507")
release {
resValue("string", "ad_id", "g87ta7hatb")
minifyEnabled true
proguardFiles 'proguard.cfg'
debuggable = true
}
debug {
resValue("string", "ad_id", "testf9tx29xur5")
debuggable = true
}
}
}
}
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildToolsVersion '29.0.2'
}
dependencies {
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.arch.core:core-runtime:2.1.0'
implementation 'androidx.arch.core:core-common:2.1.0'
huaweiImplementation 'com.huawei.hms:ads-lite:13.4.32.300'
huaweiImplementation 'com.huawei.agconnect:agconnect-apms:1.3.1.300'
huaweiImplementation 'com.huawei.agconnect:agconnect-core:1.4.1.300'
huaweiImplementation 'com.huawei.agconnect:agconnect-crash:1.4.1.300'
huaweiImplementation 'com.huawei.hms:iap:5.0.1.300'
}
apply plugin: 'com.huawei.agconnect'
项目建筑.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
maven {
url 'https://developer.huawei.com/repo/'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:4.0.1'
classpath 'com.huawei.agconnect:agcp:1.3.0.300'
}
}
allprojects {
repositories {
jcenter()
google()
maven {
url 'https://developer.huawei.com/repo/'
}
}
}
环境出现60054: url is null
故障。渐变构建还会拾取文件位置:--W- The variant: huaweiRelease, Use the json file: /Users/xxx/Documents/myappGoogle/app/src/release/agconnect-services.json
我已经尝试了风味标签,并尝试将json文件放置在风味目录中,如本文所述-https://forums.developer.huawei.com/forumPortal/en/topicview?tid=0201313999391430187&fid=0101187876626530001。到目前为止,该文件已被放入应用程序目录、src/debug(发布(目录以及src/flavor目录中。我可以在构建日志中清楚地看到,构建脚本正在找到正确的文件。
对我来说同样奇怪的是文档:https://developer.huawei.com/consumer/en/doc/development/HMS-References/iap-ExceptionHandlingAndGeneralErrorCodes-v4表示60054 is iap is not supported in this country
,但实际代码返回60054: url is null
。
返回的错误代码iapApiException.getStatus()
正在返回status.statusCode = 60054
和CCD_ 7。这来自isEnvReady
,这与上述文档相矛盾,其中状态代码60054应为OrderStatusCode.ORDER_ACCOUNT_AREA_NOT_SUPPORTED
如果这实际上是一个url错误,我预计会出现错误60001OrderStatusCode.ORDER_STATE_PARAM_ERROR
或者类似的东西。
由于这份文件,我正在考虑合并问题的可能性:https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/Environment_installation我怀疑的原因是我的AndroidManifest显然缺少应该通过脚本包含的appid。
我是不是遗漏了什么?你的建议是什么?我还应该研究什么?谢谢
1.请检查是否已将agconnect-services.json文件复制到每个构建类型的文件夹中。2.请检查您是否修改了配置文件以适应多种口味。
有关详细信息,请参阅文档。
当某个国家或地区支持华为IAP,但存在服务错误时,可能会返回结果代码60054。在这种情况下:
- 请提供您的appid以查看信息
- 请提供完整日志:
adb logcat >xxx.log
以获取它
这不是风味构建的问题,而是在测试中使用美国华为ID的问题。正确的解决方案是,开发者应该创建另一个非美国华为ID,然后登录手机。打开App Gallery应用程序后,将国家/地区的设置更改为支持IAP的国家/地区(例如英国(。删除美国SIM卡,然后在使用VPN连接到设置中更改的国家/地区后使用IAP服务。