212 lines
6.7 KiB
PowerShell
212 lines
6.7 KiB
PowerShell
# ========================================
|
||
# 集成到 Android 离线 SDK
|
||
# ========================================
|
||
|
||
$ErrorActionPreference = "Stop"
|
||
|
||
# 配置信息
|
||
$ProjectRoot = $PSScriptRoot
|
||
$AppID = "__UNI__08E0C13"
|
||
$AppName = "国语教育平台"
|
||
$PackageName = "uni.app.UNI08E0C13"
|
||
$SDKRoot = "D:\4_Part\HBuilder-Android\HBuilder-Integrate-AS"
|
||
|
||
Write-Host "========================================"
|
||
Write-Host " 集成到 Android Studio"
|
||
Write-Host "========================================"
|
||
Write-Host "AppID: $AppID" -ForegroundColor Cyan
|
||
Write-Host "应用名: $AppName" -ForegroundColor Cyan
|
||
Write-Host ""
|
||
|
||
# 检查 SDK 是否存在
|
||
if (-Not (Test-Path $SDKRoot)) {
|
||
Write-Host "错误:离线 SDK 不存在" -ForegroundColor Red
|
||
Write-Host ""
|
||
Write-Host "请先下载 uni-app Android 离线 SDK:" -ForegroundColor Yellow
|
||
Write-Host "1. 访问:https://nativesupport.dcloud.net.cn/AppDocs/download/android" -ForegroundColor Cyan
|
||
Write-Host "2. 下载最新版本(HBuilder-Integrate-AS.zip)" -ForegroundColor Cyan
|
||
Write-Host "3. 解压到:D:\SDK\HBuilder-Android\" -ForegroundColor Cyan
|
||
Write-Host ""
|
||
Write-Host "或者修改脚本中的 `$SDKRoot 变量为你的实际路径" -ForegroundColor Yellow
|
||
exit 1
|
||
}
|
||
|
||
Write-Host "✓ 找到离线 SDK:$SDKRoot" -ForegroundColor Green
|
||
Write-Host ""
|
||
|
||
# 1. 复制 Web 资源
|
||
Write-Host "步骤 1/5:复制 Web 资源..." -ForegroundColor Yellow
|
||
$WebSource = "$ProjectRoot\unpackage\dist\build\app-plus"
|
||
$WebDest = "$SDKRoot\simpleDemo\src\main\assets\apps\$AppID\www"
|
||
|
||
if (-Not (Test-Path $WebSource)) {
|
||
Write-Host "✗ 错误:编译产物不存在" -ForegroundColor Red
|
||
Write-Host "请先运行:npm run build:app" -ForegroundColor Yellow
|
||
exit 1
|
||
}
|
||
|
||
New-Item -ItemType Directory -Path $WebDest -Force | Out-Null
|
||
Copy-Item -Path "$WebSource\*" -Destination $WebDest -Recurse -Force
|
||
Write-Host "✓ Web 资源已复制" -ForegroundColor Green
|
||
Write-Host ""
|
||
|
||
# 2. 复制 Vosk AAR 库
|
||
Write-Host "步骤 2/5:复制 Vosk 库..." -ForegroundColor Yellow
|
||
$VoskSource = "$ProjectRoot\uni_modules\xwq-speech-to-text\utssdk\app-android\libs\vosk-android-0.3.47.aar"
|
||
$LibsDest = "$SDKRoot\simpleDemo\libs"
|
||
|
||
if (Test-Path $VoskSource) {
|
||
New-Item -ItemType Directory -Path $LibsDest -Force | Out-Null
|
||
Copy-Item -Path $VoskSource -Destination $LibsDest -Force
|
||
Write-Host "✓ Vosk 库已复制" -ForegroundColor Green
|
||
} else {
|
||
Write-Host "⊙ 警告:Vosk 库不存在" -ForegroundColor Yellow
|
||
Write-Host " 语音功能可能无法使用" -ForegroundColor Gray
|
||
}
|
||
Write-Host ""
|
||
|
||
# 3. 更新 dcloud_control.xml
|
||
Write-Host "步骤 3/5:更新应用配置..." -ForegroundColor Yellow
|
||
$ControlXml = "$SDKRoot\simpleDemo\src\main\assets\data\dcloud_control.xml"
|
||
$XmlContent = @"
|
||
<?xml version="1.0" encoding="utf-8"?>
|
||
<hbuilder>
|
||
<apps>
|
||
<app appid="$AppID" appver="1.0.0"/>
|
||
</apps>
|
||
</hbuilder>
|
||
"@
|
||
|
||
New-Item -ItemType Directory -Path (Split-Path $ControlXml) -Force | Out-Null
|
||
$XmlContent | Out-File -FilePath $ControlXml -Encoding UTF8 -Force
|
||
Write-Host "✓ 应用配置已更新" -ForegroundColor Green
|
||
Write-Host ""
|
||
|
||
# 4. 创建 build.gradle 配置示例
|
||
Write-Host "步骤 4/5:生成 Gradle 配置..." -ForegroundColor Yellow
|
||
$GradleConfig = @"
|
||
// ============================================
|
||
// 在 simpleDemo/build.gradle 中添加以下配置
|
||
// ============================================
|
||
|
||
android {
|
||
defaultConfig {
|
||
applicationId "$PackageName"
|
||
minSdkVersion 21 // Vosk 要求最低 API 21
|
||
targetSdkVersion 33
|
||
versionCode 100
|
||
versionName "1.0.0"
|
||
}
|
||
}
|
||
|
||
dependencies {
|
||
// 添加 Vosk 依赖
|
||
implementation files('libs/vosk-android-0.3.47.aar')
|
||
implementation 'net.java.dev.jna:jna:5.12.1'
|
||
}
|
||
|
||
repositories {
|
||
maven { url 'https://maven.aliyun.com/repository/public' }
|
||
maven { url 'https://maven.aliyun.com/repository/google' }
|
||
maven { url 'https://repo1.maven.org/maven2/' }
|
||
google()
|
||
mavenCentral()
|
||
}
|
||
"@
|
||
|
||
$GradleConfig | Out-File -FilePath "$ProjectRoot\gradle-config-for-android-studio.txt" -Encoding UTF8
|
||
Write-Host "✓ Gradle 配置已生成:gradle-config-for-android-studio.txt" -ForegroundColor Green
|
||
Write-Host ""
|
||
|
||
# 5. 生成操作指南
|
||
Write-Host "步骤 5/5:生成操作指南..." -ForegroundColor Yellow
|
||
$Guide = @"
|
||
========================================
|
||
Android Studio 打包指南
|
||
========================================
|
||
|
||
项目信息:
|
||
- AppID: $AppID
|
||
- 包名: $PackageName
|
||
- 应用名: $AppName
|
||
- SDK 路径: $SDKRoot
|
||
|
||
========================================
|
||
操作步骤:
|
||
========================================
|
||
|
||
1. 打开 Android Studio
|
||
- File -> Open
|
||
- 选择目录:$SDKRoot
|
||
|
||
2. 等待 Gradle 同步(首次可能需要 5-10 分钟)
|
||
|
||
3. 修改 build.gradle
|
||
文件位置:simpleDemo/build.gradle
|
||
|
||
添加以下内容(已生成在 gradle-config-for-android-studio.txt):
|
||
|
||
android {
|
||
defaultConfig {
|
||
applicationId "$PackageName"
|
||
minSdkVersion 21
|
||
targetSdkVersion 33
|
||
}
|
||
}
|
||
|
||
dependencies {
|
||
implementation files('libs/vosk-android-0.3.47.aar')
|
||
implementation 'net.java.dev.jna:jna:5.12.1'
|
||
}
|
||
|
||
repositories {
|
||
maven { url 'https://maven.aliyun.com/repository/public' }
|
||
maven { url 'https://repo1.maven.org/maven2/' }
|
||
google()
|
||
mavenCentral()
|
||
}
|
||
|
||
4. 点击 "Sync Now" 同步 Gradle
|
||
|
||
5. 构建 APK
|
||
- 菜单:Build -> Build Bundle(s) / APK(s) -> Build APK(s)
|
||
- 或运行命令:gradlew assembleDebug
|
||
|
||
6. APK 输出位置:
|
||
$SDKRoot\simpleDemo\build\outputs\apk\debug\simpleDemo-debug.apk
|
||
|
||
========================================
|
||
常见问题:
|
||
========================================
|
||
|
||
Q: Gradle 同步失败?
|
||
A: 确保网络连接正常,使用国内镜像(已配置)
|
||
|
||
Q: 找不到 Vosk 库?
|
||
A: 确认 libs/vosk-android-0.3.47.aar 文件存在
|
||
|
||
Q: 构建太慢?
|
||
A: 首次构建会下载依赖,之后会很快
|
||
|
||
========================================
|
||
"@
|
||
|
||
$Guide | Out-File -FilePath "$ProjectRoot\android-studio-guide.txt" -Encoding UTF8
|
||
Write-Host "✓ 操作指南已生成:android-studio-guide.txt" -ForegroundColor Green
|
||
Write-Host ""
|
||
|
||
Write-Host "========================================"
|
||
Write-Host " 集成完成!"
|
||
Write-Host "========================================"
|
||
Write-Host ""
|
||
Write-Host "下一步:" -ForegroundColor Cyan
|
||
Write-Host "1. 用 Android Studio 打开:" -ForegroundColor Yellow
|
||
Write-Host " $SDKRoot" -ForegroundColor Cyan
|
||
Write-Host ""
|
||
Write-Host "2. 查看详细指南:" -ForegroundColor Yellow
|
||
Write-Host " $ProjectRoot\android-studio-guide.txt" -ForegroundColor Cyan
|
||
Write-Host ""
|
||
Write-Host "3. 修改 build.gradle(参考):" -ForegroundColor Yellow
|
||
Write-Host " $ProjectRoot\gradle-config-for-android-studio.txt" -ForegroundColor Cyan
|
||
Write-Host ""
|