目次
前言
一、软件安装
二、下载小米便签项目源码
三、新建项目工程
四、将下载的项目源码导入到Android项目的对应目次及文件下
五、解决错误
六、摆设假造机
七、项目展示
前言
经过一学期的学习,《软件工程》这门课程已靠近尾声。由此,老师给我们布置了一个实践使命——小米便签项目。具体是由小组合作,摆设项目和上传长途git仓库。因为在实践完成过程中发现会出现很多问题,故编写这这篇博客,用来记录问题。希望也能帮到大家,谢谢!
一、软件安装
这里先容下我用的Android Studio的版本是2024.2.1,SDK版本为API 24,Gradle版本为8.9。
Android Studio官网下载链接https://developer.android.google.cn/studio?hl=en,找到对应版本举行下载,具体的安装方式推荐大家看这篇https://blog.csdn.net/m0_73909612/article/details/137931888。
二、下载小米便签项目源码
首先我们从github上的开源代码仓库上下载小米便签的源码包。下载地点:https://codeload.github.com/MiCode/Notes/zip/master,然后将下载的zip包举行解压。
三、新建项目工程
双击打开Android Studio软件,选择New Project,选择Empty Views Activity,新建一个空项目:
按照下面图示举行配置:
新创建好的项目目次如下:
四、将下载的项目源码导入到Android项目的对应目次及文件下
把原项目的代码内容搬到新建的项目工程中去:
1.首先把项目 Notes-master\src\net\micode\notes 下的包全部导入 Android Studio 的 net\micode\notes 下:
2.把 Notes-master\res 目次下的包全部导入 Android Studio 的 res 中:
(重复的文件选择替换掉这些文件)
3.将以下代码导入到AndroidManifest.xml文件中:
五、解决错误
导入完成之后,点击小锤子(Make Model '......')构建项目,然后本次实践使命的重头戏来了,你会发现有很多报错,解决一个来一个。不要慌,我们一个一个来解决:
1.依靠下载:
源码依靠于一个httpcomponents-client组件,以执行网络服务,这里我们需要去下载依靠:
下载链接:https://dlcdn.apache.org//httpcomponents/httpclient/binary/httpcomponents-client-4.5.14-bin.zip
然后将下载好后的zip包解压放在下一目次:
在Android Studio中导入依靠:
选择选择File -> Project Structure ->Dependencies-> All Dependencies -> +->
填写绝对路径,这里根据自己下载的依靠库路径填写。
导入后,会发现build.gradle多了以下内容:
2.报错:找不到符号 notification.setLatestEventInfo...
这时,会出现以下错误:
错误: 找不到符号 notification.setLatestEventInfo(......)
- D:\Code\AndroidCode\Notesmaster\app\src\main\java\net\micode\notes\gtask\remote\GTaskASyncTask.java:80: 错误: 找不到符号
- notification.setLatestEventInfo(mContext, mContext.getString(R.string.app_name), content,
- ^
- 符号: 方法 setLatestEventInfo(Context,String,String,PendingIntent)
- 位置: 类型为Notification的变量 notification
复制代码
解决方法==>解释以下代码:
修改为:
- 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), PendingIntent.FLAG_IMMUTABLE);
- } else {
- pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext,
- NotesListActivity.class), PendingIntent.FLAG_IMMUTABLE);
- }
- 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 notification=builder.getNotification();
- mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification);
- }
复制代码 3.报错:switch语句报错Constant expression required
- D:\Code\AndroidCode\Notesmaster\app\src\main\java\net\micode\notes\ui\NoteEditActivity.java:511: 错误: 需要常量表达式
- case R.id.menu_new_note:
复制代码
解决办法参考链接:https://blog.csdn.net/mjh1667002013/article/details/134763804
4.报错:jar包冲突
这里是因为我们刚才导入的依靠包有问题,所以在build.gradle里举行修改:
这部分代码有误
修改成:
- dependencies {
- implementation(libs.appcompat)
- implementation(libs.material)
- implementation(libs.activity)
- implementation(libs.constraintlayout)
- implementation(files("E:\\\\mi\\\\Notesmaster\\\\httpcomponents-client-4.5.14-bin\\lib\\httpclient-osgi-4.5.14.jar"))
- implementation(files("E:\\\\mi\\\\Notesmaster\\\\httpcomponents-client-4.5.14-bin\\lib\\httpclient-win-4.5.14.jar"))
- implementation(files("E:\\\\mi\\\\Notesmaster\\\\httpcomponents-client-4.5.14-bin\\lib\\httpcore-4.4.16.jar"))
- testImplementation(libs.junit)
- androidTestImplementation(libs.ext.junit)
- androidTestImplementation(libs.espresso.core)
- }
复制代码 5.报错:3 files found with path ‘META-INF/DEPENDENCIES’ ...
3 files found with path 'META-INF/DEPENDENCIES'.
Adding a packaging block may help, please refer to
https://developer.android.com/reference/tools/gradle-api/8.3/com/android/build/api/dsl/Packaging
for more information
解决办法:在build.gradle(Module:app)的android字段内里,加上这段代码,排除掉冲突的体系依靠包即可:
- packaging {
- resources.excludes.add("META-INF/DEPENDENCIES");
- resources.excludes.add("META-INF/NOTICE");
- resources.excludes.add("META-INF/LICENSE");
- resources.excludes.add("META-INF/LICENSE.txt");
- resources.excludes.add("META-INF/NOTICE.txt");
- }
复制代码 六、摆设假造机
到这里,项目摆设完成了,我们再次点击Make Module 这个小锤子,终于没有出现报错信息了。
接下来:我们开始摆设假造机,依次点击:1->2->3.
在这个页面,任意选择一个机型:
下一步,选择API,这里你们可以试一下 35/34,我的电脑不知道什么缘故原由选择这两个都会出现冷启动失败,而网上的解决办法我都举行了尝试,无疑都失败了,末了,我尝试使用了低API,如API 24,发现没有报错。
七、项目展示
末了,点击运行,运行成功!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |