重置设置

  1. 退出AndroidStudio
  2. 删除C:\Users\用户名\AppData\Roaming\Google\AndroidStudioxxxxC:\Users\用户名.android两个文件夹
  3. 重新打开AS后配置

Gradle的镜像源

查询版本

设置篇 - 图1

通过设置group、artifact可以查询仓库中是否包含所需版本

仓库名称 代理源地址 使用地址
central https://repo1.maven.org/maven2/ https://maven.aliyun.com/repository/central
jcenter http://jcenter.bintray.com/ https://maven.aliyun.com/repository/jcenter
public central仓和jcenter仓的聚合仓 https://maven.aliyun.com/repository/public
google https://maven.google.com/ https://maven.aliyun.com/repository/google
gradle-plugin https://plugins.gradle.org/m2/ https://maven.aliyun.com/repository/gradle-plugin
spring http://repo.spring.io/libs-milestone/ https://maven.aliyun.com/repository/spring
spring-plugin http://repo.spring.io/plugins-release/ https://maven.aliyun.com/repository/spring-plugin
grails-core https://repo.grails.org/grails/core https://maven.aliyun.com/repository/grails-core
apache snapshots https://repository.apache.org/snapshots/ https://maven.aliyun.com/repository/apache-snapshots
  1. mavenLocal()
  2. maven { url 'https://maven.aliyun.com/repository/apache-snapshots'}
  3. maven { url 'https://maven.aliyun.com/repository/central' }
  4. maven { url 'https://maven.aliyun.com/repository/google' }
  5. maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
  6. maven { url 'https://maven.aliyun.com/repository/jcenter' }
  7. maven { url 'https://maven.aliyun.com/repository/spring' }
  8. maven { url 'https://maven.aliyun.com/repository/spring-plugin' }
  9. maven { url 'https://maven.aliyun.com/repository/grails-core' }
  10. maven { url 'https://maven.aliyun.com/repository/mapr-public' }

配置Gradle混淆

  1. android {
  2. defaultConfig {
  3. consumerProguardFiles 'proguard-unity.txt', 'proguard-user.txt'
  4. }
  5. aaptOptions {
  6. noCompress = ['.unity3d','.ress', '.resource', '.obb' , '.dat'] + unityStreamingAssets.tokenize(', ')
  7. ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
  8. }
  9. buildTypes {
  10. debug {
  11. minifyEnabled false
  12. proguardFiles getDefaultProguardFile('proguard-android.txt')
  13. jniDebuggable true
  14. signingConfig signingConfigs.release
  15. }
  16. release {
  17. minifyEnabled false
  18. proguardFiles getDefaultProguardFile('proguard-android.txt')
  19. jniDebuggable true
  20. signingConfig signingConfigs.release
  21. }
  22. }
  23. }
  • minifyEnabled:用于开启/关闭代码混淆
  • consumerProguardFiles:指定的Proguard规则文件将应用于项目依赖的库的代码混淆
  • proguardFiles:指定的Proguard规则文件将应用于项目本身的代码混淆

自定义的混淆规则文件:proguard-user.txt

-keep class bitter.jnibridge.* { *; }
-keep class com.unity3d.player.* { *; }
-keep interface com.unity3d.player.IUnityPlayerLifecycleEvents { *; }
-keep class org.fmod.* { *; }
-keep class com.google.androidgamesdk.ChoreographerCallback { *; }
-keep class com.google.androidgamesdk.SwappyDisplayManager { *; }
-ignorewarnings

定义依赖库

  • implementation fileTree(dir: ‘libs’, include: [‘.jar’, ‘.aar’]) :引用本地libs目录中的jar和aar文件
  • implementation(name: ‘tradplus_unity_plugin’, ext:’aar’):引用工程中名为tradplus_unity_plugin,后缀为aar的文件
  • implementation ‘com.google.android.ads.consent:consent-library:1.0.6’:从Maven仓库下载文件

修复中文输出为乱码的问题

设置篇 - 图2

在Help->Edit Custom VM Options 中添加-Dfile.encoding=UTF-8,重启。

-Dfile.encoding=UTF-8表示虚拟机启动的时候以UTF-8字符集编码来解析我们的class字节码文件。

设置篇 - 图3