Marshmallow 上的分析损坏了吗?
Analytics broken on Marshmallow?
我正在使用分析并在编译时收到此混淆警告:
Warning: com.google.android.gms.internal.zzw$zza: can't find superclass or interface org.apache.http.client.methods.HttpEntityEnclosingRequestBase
Warning: com.google.android.gms.analytics.internal.zzam: can't find referenced class org.apache.http.NameValuePair
Warning: com.google.android.gms.analytics.internal.zzam: can't find referenced class org.apache.http.client.utils.URLEncodedUtils
等等。
我正在使用这些依赖项:
compile 'com.google.android.gms:play-services-base:7.8.0'
compile 'com.google.android.gms:play-services-gcm:7.8.0'
这是一个错误吗?有什么解决方法吗?
这可能是一个错误,请注意 Android Marshmallow 尚未发布,根据 Google+ 上的评论,当 "Android Developers" 对 post SDK,混淆器和其他东西有很多错误。等待更新版本的SDK出来。
添加到混淆器
-keep public class com.google.android.gms.**
-dontwarn com.google.android.gms.**
似乎修复了
根据 API 22-23 差异更改,org.apache.http.* 包已从 Android 6.0 (Marshmallow) API 级别 23 开始删除。
http://developer.android.com/sdk/api_diff/23/changes.html
通过:http://android-developers.blogspot.co.uk/2015/08/m-developer-preview-3-final-sdk.html
我认为如果您将旧版 Http 支持添加到应用程序的 build.gradle 中(就在 android 部分内),那么在 GMS 和其他库移至非-删除了类
android {
useLibrary 'org.apache.http.legacy' // Need until GMS upgraded
}
请参阅 this page 获取官方文档。
这是一个错误,我们需要在 运行 Proguard 时包括所有可选的依赖项(http 现在在 API 23 中是可选的),因为 Proguard 非常严格地查看所有需要的 类.
问题是,如果您的应用程序项目没有声明它需要 http,那么 Progard 将不会配置为将其作为库 jar 接收。
临时解决方法是让您的应用声明它需要它,但这也不是您真正想要的。 (见其他答案)
让 Proguard 不警告丢失 类 可能不是一个好主意,但也有可能(请参阅其他答案)
无论如何,我们会在最终的 1.4 中解决这个问题。它应该出现在下一个测试版 (beta2) 中,可能是下周(2015/09/07 的那一周)
我正在使用分析并在编译时收到此混淆警告:
Warning: com.google.android.gms.internal.zzw$zza: can't find superclass or interface org.apache.http.client.methods.HttpEntityEnclosingRequestBase
Warning: com.google.android.gms.analytics.internal.zzam: can't find referenced class org.apache.http.NameValuePair
Warning: com.google.android.gms.analytics.internal.zzam: can't find referenced class org.apache.http.client.utils.URLEncodedUtils
等等。
我正在使用这些依赖项:
compile 'com.google.android.gms:play-services-base:7.8.0'
compile 'com.google.android.gms:play-services-gcm:7.8.0'
这是一个错误吗?有什么解决方法吗?
这可能是一个错误,请注意 Android Marshmallow 尚未发布,根据 Google+ 上的评论,当 "Android Developers" 对 post SDK,混淆器和其他东西有很多错误。等待更新版本的SDK出来。
添加到混淆器
-keep public class com.google.android.gms.**
-dontwarn com.google.android.gms.**
似乎修复了
根据 API 22-23 差异更改,org.apache.http.* 包已从 Android 6.0 (Marshmallow) API 级别 23 开始删除。
http://developer.android.com/sdk/api_diff/23/changes.html
通过:http://android-developers.blogspot.co.uk/2015/08/m-developer-preview-3-final-sdk.html
我认为如果您将旧版 Http 支持添加到应用程序的 build.gradle 中(就在 android 部分内),那么在 GMS 和其他库移至非-删除了类
android {
useLibrary 'org.apache.http.legacy' // Need until GMS upgraded
}
请参阅 this page 获取官方文档。
这是一个错误,我们需要在 运行 Proguard 时包括所有可选的依赖项(http 现在在 API 23 中是可选的),因为 Proguard 非常严格地查看所有需要的 类.
问题是,如果您的应用程序项目没有声明它需要 http,那么 Progard 将不会配置为将其作为库 jar 接收。
临时解决方法是让您的应用声明它需要它,但这也不是您真正想要的。 (见其他答案)
让 Proguard 不警告丢失 类 可能不是一个好主意,但也有可能(请参阅其他答案)
无论如何,我们会在最终的 1.4 中解决这个问题。它应该出现在下一个测试版 (beta2) 中,可能是下周(2015/09/07 的那一周)