加强网站政务服务建设,微信小程序开发公司排名,邯郸注册公司,品牌vi设计案例分析文章目录0. 我的操作系统和开发环境1. 相关文件下载#xff1a;2. import project#xff1a;2.1 用import project导入项目3. make project#xff1a;3.1 AS中的命令行乱码问题:3.2 依赖库缺失问题:3.3 关于targetSdkVersion3.4 关于Missing URL3.5 关于Manifest merger f…
文章目录0. 我的操作系统和开发环境1. 相关文件下载2. import project2.1 用import project导入项目3. make project3.1 AS中的命令行乱码问题:3.2 依赖库缺失问题:3.3 关于targetSdkVersion3.4 关于Missing URL3.5 关于Manifest merger failed3.6 关于Cannot resolve method setLatestEventInfo in Notification3.7 关于Duplicate class found类重复3.8 关于3 files found with path META-INF/DEPENDENCIES.参考资料0. 我的操作系统和开发环境 Win10操作系统 Android Studio 2022版 Gradle插件和Gradle版本 SDK版本 依赖添加情况
1. 相关文件下载
项目源代码的下载缺少的依赖库——httpcomponents-client-4.5.14-bin
2. import project 由于该项目原本是基于Eclipse来进行开发所以我们需要使用AS的import project来使用gradle将该项目重新构建。 2.1 用import project导入项目
用import project导入项目 导入的过程中遇到了这个问题
主要问题为这报错信息中的Add google Maven repository and sync project看来可能Project的build.gradle少了google()* 然后这个问题就解决了~
3. make project 点击AS中的绿色小锤子make project 3.1 AS中的命令行乱码问题: 点击两下shift键引导出搜索框 在vmoptions文件下去添加-Dfile.encodingUTF-8语句 重启项目后成功可见
3.2 依赖库缺失问题: 首先要去httpcomponents-client-4.5.14-bin 下载依赖文件 将下载后的安装包放到项目的根目录下 通过AS官方的依赖导入功能来导入依赖 载入后在build.gradle(app)文件中:会自动创建好这样的语句 至此导入库失败的问题被解决
3.3 关于targetSdkVersion targetSdkVersion 14 根据AS的提示改成了targetSdkVersion 33.
3.4 关于Missing URL 根据AS的提示 红色小灯泡 增加了下面的两个语句
3.5 关于Manifest merger failed 这个问题是我找的所有的参考文中都没有遇到的情况所以最后只能硬啃报错内容来改Bug 最后是在这个博文中找到解决办法 解决安卓组件不允许进行跨进程调用的问题 原理在这篇博客中有细说 android:exported“true”简单来说就是Android12的新特性当我的SDK大于31时如果要使得我的安卓组件可以进行跨进程调用的话我就必须加上这句 android:exportedtrue
3.6 关于Cannot resolve method ‘setLatestEventInfo’ in ‘Notification’ 这个问题的解决办法在参考文中有详细给出只需要将大佬们重写的showNotification函数替换原本的函数就可以解决这个问题。
private void showNotification(int tickerId, String content) {PendingIntent pendingIntent;if (tickerId ! R.string.ticker_success) {pendingIntent PendingIntent.getActivity(mContext, 0, new Intent(mContext,NotesPreferenceActivity.class), 0);} else {pendingIntent PendingIntent.getActivity(mContext, 0, new Intent(mContext,NotesListActivity.class), 0);}Notification.Builder builder new Notification.Builder(mContext).setAutoCancel(true).setContentTitle(mContext.getString(R.string.app_name)).setContentText(content).setContentIntent(pendingIntent).setWhen(System.currentTimeMillis()).setOngoing(true);Notification notificationbuilder.getNotification();mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification);}
3.7 关于Duplicate class found类重复 这个难题我找了很多资料也没有解决最后是靠自己的顿悟想到既然类重复的原因是各种jar之间的冲突那我只需要保留我最需要的包把其它有冲突的包都忽略不就行了吗 顺者网上相关问题的无效版我了解到大概重要的jar包是哪些 我把和这3个jar包有冲突的包都exclude了:
3.8 关于3 files found with path ‘META-INF/DEPENDENCIES’. 只需要结合日志的提示添加了这一句配置 至此在该环境下的小米便签的搭建完成~ 参考资料
解决项目搭建的问题
项目搭建参考博客1
项目搭建参考博客2
解决Could not find com.android.tools.build:gradle:各种版本 Could not find com.android.tools.build:gradle:各种版本
解决项目运行的问题 解决命令行乱码问题 解决项目依赖包缺失的问题 解决安卓组件不允许进行跨进程调用的问题
android:exported“true” android:exportedtrue是什么 android:exported 其实并不是Android12的新属性在前面的版本也可以看见它。它是Android中的四大组件 ActivityServiceProviderReceiver 四大组件中都会有的一个属性。 作用是什么 在Activity中该属性用来标示当前Activity是否可以被另一个Application的组件启动true允许被启动false不允许被启动。 如果它写在service中并且为false则表示则该服务不能够跨进程使用。 所以总体来说它的主要作用是是否支持其它应用调用当前组件。 以前在我们需要的时候需要自己手动写但是在Android12中他会默认添加并且默认为true。 把里面提到的所有的安卓的组件中都给加上了android:exported“true” 解决Cannot resolve method ‘setLatestEventInfo’ in Notification’的问题 用重写的函数替代原本的函数。