Android Studio 控制台输出中文乱码
1.在Android Studio的Help -> Edit Custom VM Options… 打开的配置文件中加入
-Dconsole.encoding=UTF-8
-Dfile.encoding=UTF-8
2.gradle.bat中修改
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS= "-Dfile.encoding=UTF-8"
Pub.dev国内镜像
打包失败,找不到仓库文件404,500,jcenter
在.gradle目录下新建init.gradle, 强制删除指定镜像地址
allprojects{
repositories {
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://repo.maven.apache.org') || url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
remove repo
}
}
}
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven { url 'http://developer.huawei.com/repo/' }
}
}
Warning: Mapping new ns ... # to old ns
升级Gradle版本
1. project 目录下 build.gradle文件中 dependencies
classpath 'com.android.tools.build:gradle:7.1.3'
2. android 目录下 gradle-wrapper.properties中
distributionUrl=https://services.gradle.org/distributions/gradle-7.4-all.zip
获取系统证书调试SHA1安全码
keytool -v -list -keystore ~/.android/debug.keystore
生成安卓签名
keytool -genkey -v -keystore ./key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
- genkey: 生成密钥对,即公钥和私钥。
- keystore: 设置生成的文件目录和名称
- alias: 密钥的别名,这个名字是公开的。
- keyalg: 指定密钥的算法,一般会设置为 RSA,默认 DSA。
- validity: 证书的有效期(天)。
Flutter 打包Release
在Android 目录下新建 key.properties
storePassword=<password from previous step> //输入上一步创建KEY时输入的 密钥库 密码
keyPassword=<password from previous step> //输入上一步创建KEY时输入的 密钥 密码
keyAlias=key // 输入上一步创建KEY时输入的 证书别名
storeFile=<E:/key.jks> //key.jks的存放路径
进入项目目录的 /android/app/build.gradle
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
替换如下代码
buildTypes {
release {
signingConfig signingConfigs.debug
}
}
替换为
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
指定平台打包
flutter build apk --target-platform android-arm64
指定版本号打包
flutter build apk --build-name=1.0.3 --build-number=3
无线连接安卓手机/远程调试
adb disconnect
adb tcpip 5555
adb connect 192.168.0.100
安卓平台工具下载地址
ADB和Fastboot for Windows
https://dl.google.com/android/repository/platform-tools-latest-windows.zip
ADB和Fastboot for Mac
https://dl.google.com/android/repository/platform-tools-latest-darwin.zip
ADB和Fastboot for Linux
https://dl.google.com/android/repository/platform-tools-latest-linux.zip
Linux下Flutter环境(可搭配Jenkins持续集成)
1.下载
wget https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_2.10.5-stable.tar.xz
wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
2.解压
xz -d ***.tar.xz
tar -xvf **.tar
3.下载配置安卓环境
cd cmdline-tools/bin/
./sdkmanager --sdk_root=/home/flutter/android-sdk/ --list
./sdkmanager --sdk_root=/home/flutter/android-sdk/ "platforms;android-31"
./sdkmanager --sdk_root=/home/flutter/android-sdk/ "platform-tools"
./sdkmanager --sdk_root=/home/flutter/android-sdk/ "cmdline-tools;latest"
./sdkmanager --sdk_root=/home/flutter/android-sdk/ "build-tools;31.0.0"
4.设置环境变量 /etc/profile
export ANDROID_HOME=/home/flutter/android-sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin
export CMDLINE_HOME=/home/flutter/cmdline-tools
export PATH=$PATH:$CMDLINE_HOME/bin
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export Flutter=/home/flutter/flutter export PATH=$PATH:$Flutter/bin
5.检查
flutter doctor --android-licenses
flutter doctor
6.Jenkins 打包命令
flutter config --android-sdk /home/flutter/android-sdk
flutter pub get
flutter build apk --target-platform android-arm64
Jenkins 提示 gradle下载出错或Gradle下载卡主
从官网手动下载替换
Jenkins 常见目录 /root/.gradle/wrapper/dists
新环境打包报错
按顺序打包 profile->debug->release并观察日志
flutter buid apk --profile
flutter buid apk --debug
flutter buid apk --release
迁移到空安全
升级依赖到支持空安全的最新版本
dart pub outdated --mode=null-safety
开始迁移
dart migrate