Skip to content

Commit 1c4d3ee

Browse files
committed
Merge branch 'dev' into release
# Conflicts: # build.gradle # gradle.properties
2 parents 228ad52 + 4397d96 commit 1c4d3ee

File tree

7 files changed

+207
-21
lines changed

7 files changed

+207
-21
lines changed

app/build.gradle

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ plugins {
1010

1111
apply from: "../config_source.gradle"
1212

13-
String composeBoMVersion = "2024.11.00"
13+
String composeBoMVersion = "2024.12.01"
1414

1515
def time = new Date()
1616

@@ -144,6 +144,7 @@ android {
144144

145145
// https://developer.android.com/build/jdks
146146
compileOptions {
147+
encoding "UTF-8"
147148
// 代码 的 java 编译版本
148149
sourceCompatibility JavaVersion.VERSION_1_8
149150
targetCompatibility JavaVersion.VERSION_1_8
@@ -188,9 +189,9 @@ android {
188189
// baseline 忽略已有的 Lint 问题,Lint 只会报告自上次生成基准文件之后新增的
189190
// 如果要创建新基准,请手动删除该文件并再次运行 lint
190191
baseline = file("lint-baseline.xml")
191-
ignoreWarnings = true // 忽略警告
192-
abortOnError false // 遇到错误不停止
193-
textReport true // 输出lint报告
192+
ignoreWarnings = true // true 忽略警告
193+
abortOnError false // false 遇到错误不停止
194+
textReport true // true 输出lint报告
194195
}
195196
*/
196197
}
@@ -235,17 +236,20 @@ dependencies {
235236
// Compose BoM
236237
// https://developer.android.com/jetpack/compose/bom
237238
// https://developer.android.com/develop/ui/compose/bom/bom-mapping
238-
// val composeBoMVersion = "2023.10.01"
239-
// val composeBoMVersion = "2024.01.00"
240-
// val composeBoMVersion = "2024.02.02"
241-
// val composeBoMVersion = "2024.03.00"
242-
// val composeBoMVersion = "2024.04.01"
243-
// val composeBoMVersion = "2024.05.00"
244-
// val composeBoMVersion = "2024.06.00"
239+
// def composeBoMVersion = "2023.10.01"
240+
// def composeBoMVersion = "2024.01.00"
241+
// def composeBoMVersion = "2024.02.02"
242+
// def composeBoMVersion = "2024.03.00"
243+
// def composeBoMVersion = "2024.04.01"
244+
// def composeBoMVersion = "2024.05.00"
245+
// def composeBoMVersion = "2024.06.00"
245246
// def composeBoMVersion = "2024.08.00"
246247
// def composeBoMVersion = "2024.09.03"
247248
// def composeBoMVersion = "2024.10.01"
248249
// def composeBoMVersion = "2024.11.00"
250+
// def composeBoMVersion = "2024.12.01"
251+
// def composeBoMVersion = "2025.01.01"
252+
// def composeBoMVersion = "2025.02.00"
249253
implementation(platform("androidx.compose:compose-bom:${composeBoMVersion}"))
250254
androidTestImplementation(platform("androidx.compose:compose-bom:${composeBoMVersion}"))
251255
implementation("androidx.compose.runtime:runtime")

app/src/main/java/com/example/wan/android/ui/dialog/AppDetailDialog.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,11 @@ class AppDetailDialog(context: Context?, val env: String = "", val uid: String =
101101
- App.Build -
102102
[commit] ${BuildConfig.COMMIT_ID}
103103
[gradle] ${BuildConfig.GRADLE_VERSION}
104-
[gr_jdk] ${BuildConfig.GRADLE_JDK}
105-
[ja_jvm] ${BuildConfig.JAVA_JVM}
106-
[kt_jvm] ${BuildConfig.KOTLIN_JVM}
107-
[kt_ver] ${BuildConfig.KOTLIN_VERSION}
108-
[co_ver] ${BuildConfig.COMPOSE_VERSION}
104+
[gradle_jdk] ${BuildConfig.GRADLE_JDK}
105+
[java_jvm] ${BuildConfig.JAVA_JVM}
106+
[kotlin_jvm] ${BuildConfig.KOTLIN_JVM}
107+
[kotlin_ver] ${BuildConfig.KOTLIN_VERSION}
108+
[compose_ver] ${BuildConfig.COMPOSE_VERSION}
109109
[arch ] ${BuildConfig.OS_ARCH}
110110
[host ] ${BuildConfig.OS_NAME}
111111
[by ] ${BuildConfig.USER_NAME}

app/src/main/java/com/example/wan/android/utils/MyAppUtils.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,11 @@ object MyAppUtils {
8484
- App.Build -
8585
[commit] ${BuildConfig.COMMIT_ID}
8686
[gradle] ${BuildConfig.GRADLE_VERSION}
87-
[gr_jdk] ${BuildConfig.GRADLE_JDK}
88-
[ja_jvm] ${BuildConfig.JAVA_JVM}
89-
[kt_jvm] ${BuildConfig.KOTLIN_JVM}
90-
[kt_ver] ${BuildConfig.KOTLIN_VERSION}
91-
[co_ver] ${BuildConfig.COMPOSE_VERSION}
87+
[gradle_jdk] ${BuildConfig.GRADLE_JDK}
88+
[java_jvm] ${BuildConfig.JAVA_JVM}
89+
[kotlin_jvm] ${BuildConfig.KOTLIN_JVM}
90+
[kotlin_ver] ${BuildConfig.KOTLIN_VERSION}
91+
[compose_ver] ${BuildConfig.COMPOSE_VERSION}
9292
[arch ] ${BuildConfig.OS_ARCH}
9393
[host ] ${BuildConfig.OS_NAME}
9494
[by ] ${BuildConfig.USER_NAME}

build.gradle

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
// Top-level build file where you can add configuration options common to all sub-projects/modules.
22

33
buildscript {
4+
// 1.3.72 | 1.3.x last version
5+
// 1.4.32 | 1.4.x last version
6+
// 1.5.32 | 1.5.x last version
7+
// 1.6.21 | 1.6.x last version
8+
// 1.7.21 | 1.7.x last version
9+
// 1.8.22 | 1.8.x last version
10+
// 1.9.25 | 1.9.x last version
411
ext.kotlin_version = "1.9.25"
512

613
dependencies {
@@ -20,14 +27,21 @@ plugins {
2027
// Koala | 2024.1.1 --> 3.2-8.5
2128
// Koala Feature Drop | 2024.1.2 --> 3.2-8.6
2229
// Ladybug | 2024.2.1 --> 3.2-8.7
30+
// Ladybug Feature Drop | 2024.2.2 --> 3.2-8.8
2331
//
2432
// API 与 AGP 对应版本
2533
// API Level https://developer.android.com/build/releases/gradle-plugin#api-level-support
2634
// API --> minimum AS --> minimum AGP
35+
// 36 --> M --> 8.9.0
2736
// 35 --> KFD --> 8.6.0
2837
// 34 --> H --> 8.1.1
2938
// 33 --> F --> 7.2
3039
//
40+
// 3.6.4 | 3.x.x last version
41+
// 4.2.2 | 4.x.x last version
42+
// 7.4.2 | 7.x.x last version | 从 AGP 7.0.0 开始,构建 AAR 时不支持模块直接依赖本地 .aar 文件(不支持子模块包含本地 aar,请使用 maven 远程依赖)
43+
// 8.1.4 | 支持 AS G 的最高版本
44+
//
3145
id "com.android.application" version "8.6.1" apply false
3246
id "com.android.library" version "8.6.1" apply false
3347

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
2+
在运行 `assembleRelease` 构建任务时遇到 **`java.lang.OutOfMemoryError: Java heap space`** 通常是因为分配给 Gradle 构建工具的 Java 堆内存不足。这种情况在构建大型项目或处理复杂资源(如多模块、多资源)的情况下尤为常见。
3+
4+
以下是一些常见的解决方法:
5+
6+
---
7+
8+
### **1. 增大 Gradle 的内存分配**
9+
修改 `gradle.properties` 文件,增加分配给 Gradle 的堆内存:
10+
11+
```properties
12+
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
13+
```
14+
15+
- **`-Xmx4096m`**:将最大堆内存设置为 4GB(可根据需要调整)。
16+
- **`-XX:+HeapDumpOnOutOfMemoryError`**:在发生内存溢出时生成堆转储文件,便于调试。
17+
- **`-Dfile.encoding=UTF-8`**:确保文件编码一致。
18+
19+
---
20+
21+
### **2. 使用守护进程**
22+
启用 Gradle 守护进程(Daemon)以提升构建性能,并减少重复启动的开销。
23+
24+
确保在 `gradle.properties` 中包含以下配置:
25+
26+
```properties
27+
org.gradle.daemon=true
28+
```
29+
30+
---
31+
32+
### **3. 减少并行任务(可选)**
33+
如果是资源或模块过多造成的,可以尝试减少构建时的并行任务:
34+
35+
```properties
36+
org.gradle.parallel=false
37+
```
38+
39+
---
40+
41+
### **4. 检查任务依赖或多余资源**
42+
- **清理无用资源**:检查是否有冗余的图片、文件或代码。
43+
- **简化构建逻辑**:减少不必要的构建任务,优化脚本配置。
44+
45+
运行以下命令清理构建缓存:
46+
47+
```bash
48+
./gradlew clean
49+
```
50+
51+
---
52+
53+
### **5. 使用增量构建或只构建需要的模块**
54+
在大型项目中,可以选择构建单个模块或子项目来减少内存使用:
55+
56+
```bash
57+
./gradlew :module-name:assembleRelease
58+
```
59+
60+
---
61+
62+
### **6. 分析内存使用情况**
63+
如果问题持续,可以通过启用 JVM 的堆分析功能来找到内存消耗热点:
64+
65+
1.`gradle.properties` 中添加:
66+
```properties
67+
org.gradle.jvmargs=-Xmx4096m -XX:+HeapDumpOnOutOfMemoryError
68+
```
69+
2. 当错误发生时,会在项目目录生成一个 `.hprof` 文件,使用工具(如 [VisualVM](https://visualvm.github.io/)[MAT](https://www.eclipse.org/mat/))分析。
70+
71+
---
72+
73+
### **7. 使用最新版本的 Gradle 和插件**
74+
一些旧版本的 Gradle 或 Android 插件在处理多模块或复杂资源时效率较低,建议升级到最新版本:
75+
76+
- **Gradle Wrapper**:更新 `gradle-wrapper.properties` 中的 Gradle 版本。
77+
- **Android Gradle Plugin (AGP)**:在 `build.gradle` 中升级 `com.android.tools.build:gradle` 的版本。
78+
79+
---
80+
81+
### **8. 执行命令时动态调整内存**
82+
你可以直接在运行命令时指定内存大小:
83+
84+
```bash
85+
./gradlew assembleRelease -Dorg.gradle.jvmargs="-Xmx4096m"
86+
```
87+
88+
---
89+
90+
尝试以上方法后,通常可以解决内存不足问题。
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
2+
`studio64.exe.vmoptions``gradle.properties` 中的 JVM 配置虽然都与内存设置相关,但它们的作用范围和适用场景不同:
3+
4+
---
5+
6+
### **1. `studio64.exe.vmoptions`**
7+
这是 **Android Studio 本身** 的 JVM 配置文件,主要作用是调整 **Android Studio IDE** 的内存和性能。
8+
9+
- **作用范围**:仅限于 Android Studio 运行时。
10+
- **影响内容**
11+
- Android Studio 的内存分配(如编辑器、代码分析、索引、插件等)。
12+
- 适用于 Android Studio 的 JVM 参数。
13+
- **示例路径**
14+
- Windows: `%ANDROID_STUDIO_HOME%\bin\studio64.exe.vmoptions`
15+
- macOS: `/Applications/Android Studio.app/Contents/bin/studio.vmoptions`
16+
- Linux: `<android-studio-install-dir>/bin/studio64.vmoptions`
17+
18+
**示例内容**
19+
```plaintext
20+
-Xms128m
21+
-Xmx8192m
22+
-XX:ReservedCodeCacheSize=512m
23+
-XX:+UseG1GC
24+
-Dfile.encoding=UTF-8
25+
```
26+
27+
- **`-Xmx8192m`**:为 Android Studio 运行时分配最大 8GB 内存。
28+
29+
---
30+
31+
### **2. `gradle.properties` 中的 `org.gradle.jvmargs`**
32+
这是 **Gradle 构建工具** 的 JVM 配置,主要调整 Gradle 的内存和性能。
33+
34+
- **作用范围**:用于运行 Gradle 构建任务(如 `assembleDebug``assembleRelease`)。
35+
- **影响内容**
36+
- Gradle 的内存分配(如任务执行、资源处理、编译等)。
37+
- Gradle 守护进程的 JVM 参数。
38+
- **示例路径**
39+
- 在项目根目录:`<project-root>/gradle.properties`
40+
- 在全局配置:`~/.gradle/gradle.properties`
41+
42+
**示例内容**
43+
```properties
44+
org.gradle.jvmargs=-Xmx8192m -XX:+UseG1GC -Dfile.encoding=UTF-8
45+
```
46+
47+
- **`-Xmx8192m`**:为 Gradle 构建工具分配最大 8GB 内存。
48+
49+
---
50+
51+
### **关键区别**
52+
53+
| 特性 | `studio64.exe.vmoptions` | `gradle.properties` 中的 `org.gradle.jvmargs` |
54+
|------------------------|---------------------------------------------|------------------------------------------------|
55+
| **作用对象** | Android Studio 本身(IDE) | Gradle 构建工具 |
56+
| **使用场景** | 编辑代码、运行模拟器、插件操作、索引等 | 项目构建、打包任务 |
57+
| **作用范围** | 仅限当前 IDE | Gradle 构建的所有任务 |
58+
| **文件路径或修改方式** | 修改 IDE 的 `.vmoptions` 文件或设置 | 修改项目中的 `gradle.properties` 文件 |
59+
| **动态调试** | 无法直接作用于单次构建 | 可以通过命令行指定(`-Dorg.gradle.jvmargs`|
60+
61+
---
62+
63+
### **总结**
64+
- **`studio64.exe.vmoptions`**:决定 Android Studio 的内存限制和性能表现,对项目的编译和构建无直接影响。
65+
- **`org.gradle.jvmargs`**:直接影响 Gradle 的内存限制和性能表现,与项目构建息息相关。
66+
67+
通常情况下:
68+
- 如果问题是 **Android Studio 卡顿**,修改 `studio64.exe.vmoptions`
69+
- 如果问题是 **Gradle 构建内存不足**,修改 `gradle.properties` 中的 `org.gradle.jvmargs`

gradle/wrapper/gradle-wrapper.properties

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,16 @@ distributionPath=wrapper/dists
1212
## AGP 8.5 --> Gradle 8.7+
1313
## AGP 8.6 --> Gradle 8.7+
1414
## AGP 8.7 --> Gradle 8.9+
15+
## AGP 8.8 --> Gradle 8.10.2+
1516
# Each version will use a different cache, so avoid changing gradle versions frequently.
17+
#distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-bin.zip # 2.x.x last version
18+
#distributionUrl=https\://services.gradle.org/distributions/gradle-3.5.1-bin.zip # 3.x.x last version
19+
#distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip # 4.x.x last version
20+
#distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip # 5.x.x last version
21+
#distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.4-bin.zip # 6.x.x last version
22+
#distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip # 7.x.x last version
1623
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
24+
#distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
25+
#distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
1726
zipStoreBase=GRADLE_USER_HOME
1827
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)