小米便签源码部署全攻略

小米便签的部署

1.下载小米便签项目源码zip包以及解压

首先我们从github上的开源代码仓库上下载小米便签的源码包。其zip包的下载地址:https://codeload.github.com/MiCode/Notes/zip/masterhttps://codeload.github.com/MiCode/Notes/zip/master

2.空项目建立

选择New Project,选择Empty Views Activity,新建一个空项目:

3.按如下进行配置

4.创建好的项目如下

5.将源码对应的文件复制到 Android 项目的对应目录及文件下

(1)首先把项目Notes-master\src\net\micode\notes 下的包全部导入 Android Studio 的net\micode\notes 下

(2)把 Notes-master\res 目录下的包全部导入 Android Studio 的 res 中:

6.将ActivityMain.xml替换成以下内容

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools">

 

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />

    <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.READ_CONTACTS" />

    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />

    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />

    <uses-permission android:name="android.permission.GET_ACCOUNTS" />

    <uses-permission android:name="android.permission.USE_CREDENTIALS" />

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

 

    <application

        android:allowBackup="true"

        android:dataExtractionRules="@xml/data_extraction_rules"

        android:fullBackupContent="@xml/backup_rules"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:roundIcon="@mipmap/ic_launcher_round"

        android:supportsRtl="true"

        android:theme="@style/Theme.Notesmaster"

        tools:targetApi="31">

 

        <activity

            android:name=".ui.NotesListActivity"

            android:configChanges="keyboardHidden|orientation|screenSize"

            android:label="@string/app_name"

            android:launchMode="singleTop"

            android:theme="@style/NoteTheme"

            android:uiOptions="splitActionBarWhenNarrow"

            android:windowSoftInputMode="adjustPan"

            android:exported="true">

 

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

 

        <activity

            android:name=".ui.NoteEditActivity"

            android:configChanges="keyboardHidden|orientation|screenSize"

            android:launchMode="singleTop"

            android:theme="@style/NoteTheme"

            android:exported="true">

 

            <intent-filter>

                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />

                <data android:mimeType="vnd.android.cursor.item/text_note" />

                <data android:mimeType="vnd.android.cursor.item/call_note" />

            </intent-filter>

 

            <intent-filter>

                <action android:name="android.intent.action.INSERT_OR_EDIT" />

                <category android:name="android.intent.category.DEFAULT" />

                <data android:mimeType="vnd.android.cursor.item/text_note" />

                <data android:mimeType="vnd.android.cursor.item/call_note" />

            </intent-filter>

 

            <intent-filter>

                <action android:name="android.intent.action.SEARCH" />

                <category android:name="android.intent.category.DEFAULT" />

            </intent-filter>

 

            <meta-data

                android:name="android.app.searchable"

                android:resource="@xml/searchable" />

        </activity>

 

 

        <provider

            android:name="net.micode.notes.data.NotesProvider"

            android:authorities="micode_notes"

            android:multiprocess="true" />

 

        <receiver

            android:name=".widget.NoteWidgetProvider_2x"

            android:label="@string/app_widget2x2"

            android:exported="true">

            <intent-filter>

                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />

                <action android:name="android.appwidget.action.APPWIDGET_DELETED" />

                <action android:name="android.intent.action.PRIVACY_MODE_CHANGED" />

            </intent-filter>

 

            <meta-data

                android:name="android.appwidget.provider"

                android:resource="@xml/widget_2x_info" />

        </receiver>

        <receiver

            android:name=".widget.NoteWidgetProvider_4x"

            android:label="@string/app_widget4x4"

            android:exported="true">

 

            <intent-filter>

                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />

                <action android:name="android.appwidget.action.APPWIDGET_DELETED" />

                <action android:name="android.intent.action.PRIVACY_MODE_CHANGED" />

            </intent-filter>

 

            <meta-data

                android:name="android.appwidget.provider"

                android:resource="@xml/widget_4x_info" />

        </receiver>

 

        <receiver android:name=".ui.AlarmInitReceiver"

            android:exported="true">

            <intent-filter>

                <action android:name="android.intent.action.BOOT_COMPLETED" />

            </intent-filter>

        </receiver>

 

        <receiver

            android:name="net.micode.notes.ui.AlarmReceiver"

            android:process=":remote" >

        </receiver>

 

        <activity

            android:name=".ui.AlarmAlertActivity"

            android:label="@string/app_name"

            android:launchMode="singleInstance"

            android:theme="@android:style/Theme.Holo.Wallpaper.NoTitleBar" >

        </activity>

 

        <activity

            android:name="net.micode.notes.ui.NotesPreferenceActivity"

            android:label="@string/preferences_title"

            android:launchMode="singleTop"

            android:theme="@android:style/Theme.Holo.Light" >

        </activity>

 

        <service

            android:name="net.micode.notes.gtask.remote.GTaskSyncService"

            android:exported="false" >

        </service>

 

        <meta-data

            android:name="android.app.default_searchable"

            android:value=".ui.NoteEditActivity" />

        

<!--        <activity-->

<!--            android:name=".MainActivity"-->

<!--            android:exported="true">-->

<!--            <intent-filter>-->

<!--                <action android:name="android.intent.action.MAIN" />-->

 

<!--                <category android:name="android.intent.category.LAUNCHER" />-->

<!--            </intent-filter>-->

<!--        </activity>-->

        

    </application>

 

</manifest>

7.点击Make Model构建项目如图

8.错误提示乱码

9.依赖下载

下载链接:

https://dlcdn.apache.org//httpcomponents/httpclient/binary/httpcomponents-client-4.5.14-bin.zip然后我们把下载好后的zip包解压并放在如下目录:

10.在 Android Studio 中导入依赖

选择File -> Project Structure -> All Dependencies -> +

填写绝对路径

11.添加虚拟机

12.代码中少了一对双引号

13.重新构建找不到符号notification.setLatestEventInfo

解决方法:

将以下代码:

修改为:

14.再次构建项目,然后又遇到错误:switch语句报错Constant expression required

解决方法:在gradle.properties配置文件下添加如下代码即可解决

15.jar包冲突

解决方法:要把刚刚导入的build.gradle.kts (Module :app)包时自动生成的代码进行修改

16.提示错误:3 files found with path ‘META-INF/DEPENDENCIES’

解决方法:在build.gradle(Module:app)的android字段里面,加上这段代码,排除掉冲突的系统依赖包即可

17.最终点击运行即可成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值