在实施华为远程配置时无法启用缩小



我正在尝试在我的应用程序中实现华为远程配置。但是每当我启用缩小时,我都会收到如下错误。有人知道我如何解决这个问题吗?

build.gradle

com.huawei.agconnect.exception.AGCServerException:
code: 2 message: java.lang.IllegalArgumentException: ONLY ONE String Field can be annotated as Url      
at c.i.a.f.g.b(Unknown Source:72)            
at c.i.a.f.g.a(Unknown Source:0)
at c.i.a.f.k.a(Unknown Source:2)
at c.i.a.f.d$b.a(Unknown Source:6)         
at c.i.a.f.i$a.a(Unknown Source:14)        
at c.i.a.f.i$a.call(Unknown Source:0)      
at c.i.d.a.j.f$a.run(Unknown Source:4)   
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)   
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)   
at java.lang.Thread.run(Thread.java:784)            
at com.huawei.agconnect.credential.obs.i$1.onFailure(Unknown Source:115)      
at c.i.d.a.j.c$a.run(Unknown Source:27) at c.i.d.a.h$a.execute(Unknown Source:0)
at c.i.d.a.j.c.onComplete(Unknown Source:19)     at c.i.d.a.j.e.f(Unknown Source:21)          
at c.i.d.a.j.e.a(Unknown Source:19)         
at c.i.d.a.g.a(Unknown Source:2)             
at c.i.d.a.j.f$a.run(Unknown Source:15)
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)   
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)   
at java.lang.Thread.run(Thread.java:784)

我遇到了同样的问题。我的 proguard-rules.pro 缺少以下行:

-keep class com.huawei.agconnect.**{*;}

我所有的HMS规则:

# HMS Core classes
-ignorewarnings
-keepattributes Exceptions
-keep class com.huawei.agconnect.**{*;}
-keep class com.hianalytics.android.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
# HMS Remote Config
-keep class com.huawei.agconnect.remoteconfig.*{*;}
-keepclassmembers class **{
public <init>(android.content.Context,com.huawei.agconnect.AGConnectInstance);
}
-keepclassmembers class com.huawei.agconnect.remoteconfig.internal.server.**{*;}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}

这不是相关的漱口问题,希望您错过了配置流程。

我不太确定缩小,但它可能不受支持。Codelab还建议将其关闭。我希望这对您的项目来说不是太必要,但是如果我正确理解您并关闭它,那么一切都可以毫无问题地编译,对吧?

我使用这些规则:

-keep class com.huawei.agconnect.**{*;}
-dontwarn com.huawei.agconnect.**
-keepattributes SourceFile, Exceptions, Signature, InnerClasses, LineNumberTable
-ignorewarnings 
-keepattributes *Annotation* 
-keepattributes Exceptions 
-keepattributes InnerClasses 
-keepattributes Signature  
-keep class com.huawei.hianalytics.**{*;} 
-keep class com.huawei.updatesdk.**{*;} 
-keep class com.huawei.hms.**{*;} 
-keep interface com.huawei.hms.analytics.type.HAEventType{*;}
-keep interface com.huawei.hms.analytics.type.HAParamType{*;}
-keep class com.huawei.hms.analytics.HiAnalyticsInstance{*;}
-keep class com.huawei.hms.analytics.HiAnalytics{*;}

(引用此处和此处的组合(

您还确定正确使用华为远程配置吗?

在你的根build.gradle中需要这个:

buildscript { 
repositories { 
...
maven {url 'https://developer.huawei.com/repo/'} 
} 
}

buildscript { 
dependencies { 
...
classpath 'com.huawei.agconnect:agcp:1.5.2.300'
} 
}

然后这些 dep 在你的 app/build.gradle 中:

dependencies {
implementation 'com.huawei.agconnect:agconnect-core:1.5.2.300'
implementation 'com.huawei.agconnect:agconnect-remoteconfig:1.5.2.300'
implementation 'com.huawei.hms:hianalytics:6.0.0.300'

然后实例化并拉取配置: (如果你不拉护可能会将它们剥离为未使用(

private lateinit var config: AGConnectConfig
private lateinit var analytics: HiAnalyticsInstance

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
config = AGConnectConfig.getInstance()
analytics = HiAnalytics.getInstance(this)
config.fetch(0) // a value of 0 here is for DEBUGGING ONLY, delete for prod (giving a 12 hour refresh period)
.addOnSuccessListener {
config.apply(it)
Log.d(TAG, "Applied")
updateUIBasedOnRemoteConfig()
}

参考: https://blog.blundellapps.co.uk/remote-configuration-using-appgallery-connect/

最新更新