# Android 项目配置环境文档 ## 一、项目基本信息 ### 1.1 项目信息 - **项目名称**: HouseProperty (房产物业管理) - **包名**: com.sl.HouseProperty - **命名空间**: com.sl.house_property - **版本号**: 1.1.9 - **版本代码**: 119 - **项目路径**: D:\Users\86181\AndroidStudioProjects\HouseProperty ### 1.2 应用配置 - **ApplicationId**: com.sl.HouseProperty - **最小SDK版本**: 21 (Android 5.0 Lollipop) - **目标SDK版本**: 29 (Android 10) - **编译SDK版本**: 33 (Android 13) - **测试运行器**: androidx.test.runner.AndroidJUnitRunner --- ## 二、开发环境配置 ### 2.1 Java 环境 - **系统Java版本**: 1.8.0_101 (Java 8) - **项目要求Java版本**: Java 11+ (推荐使用 Android Studio JDK 21) - **JAVA_HOME**: C:\Program Files\Android\Android Studio1\jbr - **编译目标**: Java 8 (sourceCompatibility & targetCompatibility) - **Kotlin JVM目标**: 1.8 ⚠️ **注意**: 项目要求Java 11+,但系统Java是1.8,需要使用Android Studio内置JDK ### 2.2 Android SDK 环境 - **ANDROID_HOME**: C:\Users\86181\AppData\Local\Android\Sdk - **SDK路径**: C:\Users\86181\AppData\Local\Android\Sdk - **NDK配置**: - ABI过滤器: armeabi-v7a - 支持的架构: armeabi, armeabi-v7a, arm64-v8a, x86 ### 2.3 构建工具版本 #### Gradle 配置 - **Gradle版本**: 8.9 - **Gradle分发URL**: https://services.gradle.org/distributions/gradle-8.9-bin.zip - **Gradle用户目录**: GRADLE_USER_HOME - **Gradle JVM参数**: -Xmx1536m #### Android Gradle Plugin (AGP) - **AGP版本**: 8.7.3 - **构建工具**: 自动使用默认版本(AGP 8.0+不再需要buildToolsVersion) #### Kotlin 配置 - **Kotlin版本**: 1.9.24 - **Kotlin插件**: org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.24 - **Kotlin标准库**: kotlin-stdlib:1.9.24 --- ## 三、项目模块结构 ### 3.1 模块列表 ``` HouseProperty/ ├── app/ # 主应用模块 └── ninegridview/ # 自定义九宫格图片显示模块 ``` ### 3.2 模块配置 - **主模块**: app (com.android.application) - **子模块**: ninegridview (library) - **模块依赖**: app 依赖 ninegridview --- ## 四、构建配置 ### 4.1 构建类型 (Build Types) #### Debug 构建 - **代码混淆**: 禁用 (minifyEnabled false) - **签名配置**: defaultSignature - **调试信息**: 包含 #### Release 构建 - **代码混淆**: 禁用 (minifyEnabled false) ⚠️ **安全风险** - **签名配置**: 已注释(未启用) - **ProGuard规则**: proguard-android.txt + proguard-rules.pro ### 4.2 签名配置 ```gradle signingConfigs { defaultSignature { keyAlias: 'key0' keyPassword: 'haotian' storeFile: 'haotian.jks' storePassword: 'haotian' } } ``` ⚠️ **安全警告**: 签名密钥硬编码在build.gradle中,存在安全风险 ### 4.3 打包配置 - **排除文件**: - META-INF/DEPENDENCIES - META-INF/NOTICE - META-INF/LICENSE - META-INF/LICENSE.txt - META-INF/NOTICE.txt ### 4.4 资源处理 - **AAPT选项**: - cruncherEnabled: false - useNewCruncher: false (已废弃) - **资源目录**: - assets: src/main/assets - jniLibs: libs ### 4.5 Lint 配置 - **错误中断**: 禁用 (abortOnError false) - **警告**: 不中断构建 --- ## 五、功能特性配置 ### 5.1 已启用特性 - ✅ **DataBinding**: 已启用 - ✅ **MultiDex**: 已配置(androidx.multidex:multidex:2.0.1) - ✅ **AndroidX**: 已启用 (android.useAndroidX=true) - ✅ **Jetifier**: 已启用 (android.enableJetifier=true) ### 5.2 Manifest占位符 ```gradle manifestPlaceholders = [ JPUSH_PKGNAME: applicationId, JPUSH_APPKEY: "4b6e03f9cc9466efbc0b2528", JPUSH_CHANNEL: "developer-default" ] ``` --- ## 六、依赖库配置 ### 6.1 仓库配置 (Repositories) #### Maven 仓库 1. **阿里云Maven镜像** (主要仓库) - https://maven.aliyun.com/nexus/content/groups/public/ - https://maven.aliyun.com/repository/public - https://maven.aliyun.com/repository/gradle-plugin - https://maven.aliyun.com/repository/central - https://maven.aliyun.com/repository/google 2. **官方仓库** - Google Maven - Maven Central - JitPack 3. **本地仓库** - flatDir: libs目录 ### 6.2 核心依赖库 #### Kotlin 相关 - kotlin-stdlib: 1.9.24 - kotlin-gradle-plugin: 1.9.24 #### AndroidX / Support Library - androidx.multidex:multidex: 2.0.1 - com.android.support:appcompat-v7: 28.0.0 ⚠️ **应迁移到AndroidX** #### 网络请求 - com.squareup.retrofit2:retrofit: 2.1.0 ⚠️ **版本过旧(2016年)** - com.squareup.retrofit2:converter-gson: 2.1.0 - com.squareup.retrofit2:adapter-rxjava: 2.1.0 - com.squareup.okhttp3:logging-interceptor: 3.4.1 - com.lzy.net:okgo: 3.0.4 - com.lzy.net:okrx2: 2.0.2 #### 响应式编程 - io.reactivex:rxjava: 1.1.0 ⚠️ **版本过旧,已停止维护** - io.reactivex:rxandroid: 1.1.0 - io.reactivex.rxjava2:rxjava: 2.1.5 ⚠️ **混用RxJava 1和2** - io.reactivex.rxjava2:rxandroid: 2.1.1 - com.trello:rxlifecycle: + (最新版本) - com.trello:rxlifecycle-components: + (最新版本) #### 图片加载 - com.github.bumptech.glide:glide: 4.9.0 ✅ - com.squareup.picasso:picasso: 2.5.2 ⚠️ **与Glide混用,建议移除** - com.github.chrisbanes:PhotoView: 2.0.0 #### JSON 处理 - com.google.code.gson:gson: 2.6.2 ⚠️ **版本过旧(2016年)** #### UI 组件 - com.scwang.smartrefresh:SmartRefreshLayout: 1.1.0 - com.gyf.immersionbar:immersionbar: 3.0.0 - com.lxj:xpopup: 1.8.10 - com.youth.banner:banner: 1.4.10 - com.jcodecraeer:xrecyclerview: 1.3.2 - com.github.CymChad:BaseRecyclerViewAdapterHelper: 2.9.30 - com.nineoldandroids:library: 2.4.0 #### 数据库 - com.j256.ormlite:ormlite-core: 5.1 - com.j256.ormlite:ormlite-android: 5.1 #### 权限管理 - com.hjq:xxpermissions: 5.5 - com.tbruyelle.rxpermissions2:rxpermissions: 0.9.5 #### 图片/视频选择 - com.zhihu.android:matisse: 0.5.3-beta3 - io.github.lucksiege:pictureselector: v2.7.3-rc05 - fm.jiecao:jiecaovideoplayer: 4.8.3 #### 支付相关 - alipaySdk-15.5.9.aar (本地AAR) - com.tencent.mm.opensdk:wechat-sdk-android-without-mta: + (最新版本) #### 推送服务 - cn.jiguang.sdk:jpush: 3.6.6 - cn.jiguang.sdk:jcore: 2.3.8 #### 其他工具库 - com.tencent.bugly:crashreport: latest.release - top.zibin:Luban: 1.1.8 (图片压缩) - com.google.zxing:core: 3.3.0 (二维码) - tech.wangjie:qrcodetools: 1.0.0 - liji.library.dev:citypickerview: 5.2.2 - me.jessyan:autosize: 1.1.2 (屏幕适配) - com.arialyy.aria:Aria: 3.1.1 (下载框架) - net.dankito.richtexteditor:richtexteditor-android: 2.0.8 ### 6.3 本地依赖 (libs目录) #### AAR 文件 - alipaySdk-15.5.9.aar (支付宝SDK) - cutil-release.aar (自定义工具库) - selectpicker-release.aar (选择器) - gifdecoder-4.5.0.aar - glide-4.5.0.aar - glide-4.6.1.aar - material-1.2.5.aar - PhotoView-2.0.0.aar #### JAR 文件 - fastjson-1.2.7.jar - pldroid-player-2.1.9.jar (播放器SDK) #### 本地SO库 (Native Libraries) - **armeabi-v7a**: - libqcOpenSSL.so - libQPlayer.so - **armeabi**: - libqcOpenSSL.so - libQPlayer.so - **arm64-v8a**: - libqcOpenSSL.so - libQPlayer.so - **x86**: - libqcOpenSSL.so - libQPlayer.so --- ## 七、Gradle 配置详情 ### 7.1 gradle.properties 配置 ```properties # JVM参数 org.gradle.jvmargs=-Xmx1536m # AndroidX配置 android.useAndroidX=true android.enableJetifier=true # 测试配置 android.injected.testOnly=false # Java编译配置 android.javaCompile.suppressSourceTargetDeprecationWarning=true # SSL证书配置 systemProp.javax.net.ssl.trustStoreType=JKS ``` ### 7.2 local.properties 配置 ```properties sdk.dir=C\:\\Users\\86181\\AppData\\Local\\Android\\Sdk ``` ### 7.3 settings.gradle 配置 ```gradle include ':app',':ninegridview' ``` --- ## 八、编译环境要求 ### 8.1 必需环境 - ✅ **JDK**: Java 11+ (推荐 Android Studio JDK 21) - ✅ **Android SDK**: API Level 33 - ✅ **Gradle**: 8.9 - ✅ **Android Gradle Plugin**: 8.7.3 - ✅ **Kotlin**: 1.9.24 ### 8.2 推荐环境变量设置 ```powershell # 设置Java环境(编译时使用) $env:JAVA_HOME="C:\Program Files\Android\Android Studio1\jbr" # 设置Android SDK路径 $env:ANDROID_HOME="C:\Users\$env:USERNAME\AppData\Local\Android\Sdk" ``` ### 8.3 编译命令 ```bash # Debug版本编译 $env:JAVA_HOME="C:\Program Files\Android\Android Studio1\jbr"; $env:ANDROID_HOME="C:\Users\$env:USERNAME\AppData\Local\Android\Sdk"; .\gradlew.bat assembleDebug # Release版本编译 $env:JAVA_HOME="C:\Program Files\Android\Android Studio1\jbr"; $env:ANDROID_HOME="C:\Users\$env:USERNAME\AppData\Local\Android\Sdk"; .\gradlew.bat assembleRelease # 清理项目 .\gradlew.bat clean ``` --- ## 九、已知配置问题 ### 9.1 ⚠️ 高优先级问题 1. **签名密钥硬编码** - 位置: app/build.gradle - 风险: 安全漏洞 - 建议: 移至gradle.properties或使用密钥管理服务 2. **代码混淆未启用** - Release版本: minifyEnabled false - 风险: 代码容易被反编译 - 建议: 启用混淆并配置规则 3. **依赖版本过旧** - Retrofit: 2.1.0 (2016年) - RxJava: 1.1.0 (已停止维护) - Gson: 2.6.2 (存在安全漏洞) - 建议: 升级到最新稳定版本 4. **混用多个版本库** - RxJava 1.x 和 RxJava 2.x 混用 - Glide 和 Picasso 混用 - 建议: 统一使用一个版本/库 ### 9.2 ⚠️ 中优先级问题 1. **Support Library未完全迁移** - 仍使用 com.android.support:appcompat-v7:28.0.0 - 建议: 完全迁移到AndroidX 2. **targetSdkVersion过旧** - 当前: 29 (Android 10) - 建议: 升级到33+ (Android 13) 3. **使用flatDir加载本地AAR** - 不推荐使用flatDir - 建议: 使用本地Maven仓库或发布到私有仓库 ### 9.3 ⚠️ 低优先级问题 1. **Gradle JVM内存配置** - 当前: 1536m - 建议: 根据项目大小调整(建议2048m+) 2. **NDK ABI过滤器** - 当前: 仅支持 armeabi-v7a - 建议: 根据需求添加 arm64-v8a --- ## 十、环境检查清单 ### 10.1 开发环境检查 - [ ] JDK 11+ 已安装并配置 - [ ] Android SDK 已安装(API 33) - [ ] Android Studio 已安装 - [ ] Gradle 8.9 已下载 - [ ] 环境变量已配置(JAVA_HOME, ANDROID_HOME) ### 10.2 项目配置检查 - [ ] build.gradle 配置正确 - [ ] local.properties 配置正确 - [ ] gradle.properties 配置正确 - [ ] 签名文件存在(haotian.jks) - [ ] 依赖库可正常下载 ### 10.3 编译检查 - [ ] 项目可正常同步 - [ ] Debug版本可正常编译 - [ ] Release版本可正常编译 - [ ] 无编译错误和警告 --- ## 十一、配置优化建议 ### 11.1 立即优化 1. 移除硬编码的签名密钥 2. 启用Release版本代码混淆 3. 升级关键依赖库版本 ### 11.2 短期优化 1. 统一依赖库版本(移除混用) 2. 完全迁移到AndroidX 3. 升级targetSdkVersion ### 11.3 长期优化 1. 使用依赖版本管理(Version Catalog) 2. 建立CI/CD流程 3. 配置代码质量检查工具 --- ## 十二、配置参考 ### 12.1 推荐JDK配置 ```powershell # PowerShell环境变量设置(临时) $env:JAVA_HOME="C:\Program Files\Android\Android Studio1\jbr" $env:ANDROID_HOME="C:\Users\$env:USERNAME\AppData\Local\Android\Sdk" $env:PATH="$env:JAVA_HOME\bin;$env:ANDROID_HOME\platform-tools;$env:PATH" ``` ### 12.2 推荐Gradle配置 ```properties # gradle.properties org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m org.gradle.parallel=true org.gradle.caching=true org.gradle.daemon=true ``` --- **文档生成时间**: 2025年1月 **项目路径**: D:\Users\86181\AndroidStudioProjects\HouseProperty **配置检查**: 基于当前项目文件分析