欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记录Android修改报名顺便迁移androidx

程序员文章站 2022-06-08 12:55:21
...

修改包名:

我的方法不是正经方法。。不能完全修改包名。、

1、修改app的build.gradle 的applicationId ,然后sync一下 ,接着把项目用到的一些配置文件里面哪里有用到package_name 字段 

    defaultConfig {
        applicationId "com.hyphenate.xxxx"
        //测试oppo离线消息,需修改包名如下,如果配置了FCM推送,同时替换google-services.json 中的 package_name 字段
        //applicationId "com.hyphenate.chatuidemo.push"
        minSdkVersion 19
        targetSdkVersion 29
        multiDexEnabled true
        ndk {
            abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86'
        }
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

然后发现竟然没报错诶

2、接着根目录改名 点击refactor > rename  ,发现package只改了最后一个package的名字目录名字由原本的com.hyphenate.chatuidemo变为com.hyphenate.xxxx

3、不要忘记androidmanifest.xml中的package名字 。如果有用到FileProvider也不要忘记修改

<provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="${applicationId}.fileProvider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths" />
</provider>

Android转成androidx:

太惨了我项目用的模块而不是依赖 我太难了 

项目引用第三方库需要报错原因是不兼容Androidx 于是就迁移Androidx

1、直接refactor>Migrate to Androidx 

T^T 各种报错幺 不能同步 不能编译

报错1:Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.

报错2:Error while generating the main dex list

报错3:NDK is missing a "platforms" directory.

报错4:Program type already present: android.support.v4.graphics.drawable.IconCompatParcelizer,,,等

以上报错除了第3个摸不着头脑 因为查看项目结构目录上有地址啊。。反正网上资料都是说包冲突的问题 

这样先用命令行查看问题 在android studio 底部的 Terminal 输入 gradlew  assembleDebug  --stacktrace

就可以看到如2、4等报错 ,明确说是啥包冲突 接着我按照网上指导使用工具查看依赖树 开始剔除冲突包,根据编译得到冲突包名字exclude不同的版本,或者全部剔除再重写这个包的依赖 (事实证明这是不需要的)

    implementation ('com.google.firebase:firebase-messaging:11.4.0'){
//        exclude group: 'androidx.viewpager' ,module: 'viewpager'// 根据组织名 + 构建名剔除
    }

记录Android修改报名顺便迁移androidx

2、之后就发现不对劲啊 module里面竟然还有support的依赖 ,然后就修改了过来变成了androidx的依赖

api 'androidx.appcompat:appcompat:1.1.0'

问题就没了。。。。

3、编译出来是就基本剩下Android到Androidx在activity中的import了 ,就是 module的活动特别多 T^T ,要使用自动导入功能 省不少事。

删除所有support的引用之后 就完了。

0^0 下一次不知道还能不能成功。

 

 

 

相关标签: android