希望适配androidx

数据统计
sdk
android
标签: #<Tag:0x00007f83d69ce260> #<Tag:0x00007f83d69ce120> #<Tag:0x00007f83d69cdfe0>

(Hyhyhykw) #1

里面用了反射调用android.support包,androidx兼容不了,在android studio上出错,错误信息如下

The given artifact contains a string literal with a package reference ‘android.support.v4.widget’ that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.


#2

你用的是 JAnalytics SDK 吗?SDK 版本多少?


(Hyhyhykw) #4

最新版推送sdk 2.0.0


#5

极光推送的最新版本不是 2.0.0 ,极光统计才是
https://docs.jiguang.cn/janalytics/updates/#janalytics-android-sdk-v200

请首先确认下你使用了极光的哪些 SDK,版本分别是多少

以及你上面的错误是在加了极光的 SDK 之后才有的报错吗?复现步骤是怎样的?

直接使用我们的 demo 在Androidx 上测试有问题吗


(Hyhyhykw) #6

是androidx包,androidx不是手机,如果不知道什么是androidx,请查一下,androidx包是这个

,用的是最新版统计sdk 2.0.0,用android studio 这样做就是androidx包了,你们的统计sdk用了反射获取android support包(不知道查一下)的内容,导致不能顺利通过编译


#7

好的,确认到产品即可,我将这个情况上报给研发


#8

经过确认,现在不支持,产品评估后会将其作为新需求列入版本计划

你可以尝试这个临时方案:
先在不依赖我们的包时点Migrate to AndroidX,然后依赖我们的包。这样应该可以运行(只是没有覆盖到androidx包下的控件)


#9

当前分析结果如下,需要提供更多信息:

开发测试你反馈的操作流程,没有发现有编译问题。请问不使用极光 SDK 是否还存在问题?

请帮忙确认一下你在同等环境下,没有用极光的sdk操作是否是可以的?

如果是,麻烦提供一下demo环境,协助我们进行复测。


(Hyhyhykw) #10

没有用极光统计就是好着的,否则我在这里说干什么,你们代码里面用了反射获取support包的class,无法通过编译,The given artifact contains a string literal with a package reference ‘android.support.v4.widget’ that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx. 在你们统计jar包中 cn.jiguang.analytics.android.e.g.l中用到了反射

导致编辑器无法成功将support包转为androidx包,麻烦你们也看一下英文部分


#11

1、根据你的问题信息,我们已明白是什么问题,但可能由于环境不一样,我们无法复测到问题。

可能有些编译环境修补了这个问题,所以麻烦帮忙提供一下这些信息:你的android Studio 版本,gradle 版本,compileSdkVersion,buildToolsVersion,targetSdkVersion,minSdkVersion 等版本是多少,最好能有你给的demo,以便我们修改和测试,万分感谢。

2、这个问题是在转换过成中没有通过对吗?

3、之前提供的临时方案:先不依赖极光,转换后再依赖我们的sdk是否可以解决?


(Hyhyhykw) #12

不是转换过程,是打包的时候无法通过,as版本:3.4,gradle :5.1.1,这是一个简单的demo ,你们打包试一下,版本信息里面也有,https://github.com/hyhyhykw/JanalyticsTest


#13

经确认,开发将在下一个版本处理该问题。

当前你可以这样处理:


其中, 设置 android.enableJetifier=false

也可以这两个都不要写