当前位置:   article > 正文

unity中使用用gradle 打包(持续更新与改进)_unity gradle

unity gradle

目录

最新版Unity Android 打包原理解析

专属NDK配置:

专属JDK配置:

专属SDK配置:

专属Gradle配置:

一些简单的sdk接入可考虑修改模板直接打包

unity关于gradle的常见地址:

gradle基本结构和使用说明:

1.如何在 module 的 gradle 中添加依赖和 AndroidManifest 的替换变量。

gradle在unity的一般写法

unity使用gradle打包的疑难问题

unity中使用gradle 打包实操


android插件版本与gradle版本的对应关系:

Android Gradle 插件版本说明  |  Android 开发者  |  Android Developers

gradle  各版本下载:

http://services.gradle.org/distributions/

查看最新的Android Plugin Version:https://jcenter.bintray.com/com/android/tools/build/gradle/

查看最新的Gradle:Gradle Distributions

jar包仓库:https://mvnrepository.com/

最新版Unity Android 打包原理解析

Unity的所有与android相关的设定与配置都放在AndroidPlayer目录下:

C:\Program Files\Unity\Hub\Editor\2020.3.32f1c1\Editor\Data\PlaybackEngines\AndroidPlayer

知道了原理后就可以自己为不同的Unity版本配置它专属的Android开发与发布环境

专属NDK配置:

        从官网下载自己想下的NDK,然后替换掉文件夹的内容

专属JDK配置:

        从官网下载自己想下的NDK,然后替换掉文件夹的内容

        

专属SDK配置:

        从官网下载自己想下的NDK,然后替换掉文件夹的内容

专属Gradle配置:

   从官网下载自己想下的Gradle,然后替换掉文件夹的内容

Unity设置中,勾选选择自己版本路径内的,取消勾选选定自己电脑中其它目录下的

一些简单的sdk接入可考虑修改模板直接打包

1.新版本直接勾选即可修改在项目中修改 gradle模板文件。

将模板拷贝到Android目录下,按自己的需求编写即可

unity关于gradle的常见地址:

模板地址:C:\Program Files\Unity2018.4.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates

unity用到的gradle版本地址:C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle

android studio grade下载地址:C:\Program Files\Android\Android Studio\gradle\gradle-5.1.1

gradle基本结构和使用说明:

1.如何在 module 的 gradle 中添加依赖和 AndroidManifest 的替换变量。

  1. android {
  2. ......
  3. defaultConfig {
  4. applicationId "com.xxx.xxx" //JPush 上注册的包名.
  5. ......
  6. ndk {
  7. //选择要添加的对应 cpu 类型的 .so 库。
  8. abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
  9. // 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
  10. }
  11. manifestPlaceholders = [
  12. JPUSH_PKGNAME : applicationId,
  13. JPUSH_APPKEY : "你的 Appkey ", //JPush 上注册的包名对应的 Appkey.
  14. JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
  15. ]
  16. ......
  17. }
  18. ......
  19. }
  20. dependencies {
  21. ......
  22. compile 'cn.jiguang.sdk:jpush:3.6.0' // 此处以JPush 3.6.0 版本为例。
  23. compile 'cn.jiguang.sdk:jcore:2.3.4' // 此处以JCore 2.3.4 版本为例。
  24. ......
  25. }
  1. <activity
  2. android:name="cn.jpush.android.ui.PopWinActivity"
  3. android:exported="true"
  4. tools:node="replace"
  5. android:theme="@style/MyDialogStyle">
  6. <intent-filter>
  7. <category android:name="android.intent.category.DEFAULT" />
  8. <action android:name="cn.jpush.android.ui.PopWinActivity" />
  9. <category android:name="${applicationId}" />
  10. </intent-filter>
  11. </activity>

gradle在unity的一般写法

  1. //读取不到jar包后,如何读取aar
  2.    
  3. implementation 'demo.xiaxiayige.com:testmaven:1.0.0@aar'


 

unity使用gradle打包的疑难问题

批量引用aar导致的重复包问题

  1. dependencies {
  2. implementation fileTree(dir: 'libs', include: ['*.jar'])
  3. //直接使用 implementation fileTree(dir: 'libs', include: ['*.aar'])会导致包重复问题
  4. //使用下面的方法可解决
  5. // 引入libs文件夹下所有的aar文件,不需要引入的建议删除,在需要时再添加
  6. fileTree(dir: 'libs', include: ['*.aar']).each { file ->
  7. api(name: file.name.lastIndexOf('.').with {
  8. it != -1 ? file.name[0..<it] : file.name
  9. }, ext: 'aar')
  10. }
  11. //必须 :该库因为SDK内部使用
  12. //noinspection GradleCompatible
  13. implementation 'com.android.support:cardview-v7:28.0.0'
  14. //必须:这个库是加载一些广告中gif文件 所以需要依赖
  15. implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.18'
  16. //必须:这个库是内部SDK用到 需要依赖
  17. implementation 'com.google.code.gson:gson:2.8.6'
  18. //必须:这个库保证版本在24以上即可
  19. //noinspection GradleCompatible
  20. implementation 'com.android.support:support-v4:26.1.0'
  21. **DEPS**}

unity中使用gradle 打包实操

//特别注意://这里需要特别注意:有密钥的将 debug 中的内容删除,因为sha1 在debug 和release 生成的apk 不一样

  1. // GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
  2. buildscript {
  3. repositories {
  4. google()
  5. jcenter()
  6. }
  7. dependencies {
  8. classpath 'com.android.tools.build:gradle:3.4.0'
  9. **BUILD_SCRIPT_DEPS**}
  10. }
  11. allprojects {
  12. repositories {
  13. google()
  14. jcenter()
  15. flatDir {
  16. dirs 'libs'
  17. }
  18. }
  19. }
  20. apply plugin: 'com.android.application'
  21. **APPLY_PLUGINS**
  22. dependencies {
  23. implementation fileTree(dir: 'libs', include: ['*.jar'])
  24. // 引入libs文件夹下所有的aar文件,不需要引入的建议删除,在需要时再添加
  25. fileTree(dir: 'libs', include: ['*.aar']).each { file ->
  26. api(name: file.name.lastIndexOf('.').with {
  27. it != -1 ? file.name[0..<it] : file.name
  28. }, ext: 'aar')
  29. }
  30. // 公共
  31. implementation 'com.squareup.picasso:picasso:2.5.2'
  32. implementation 'com.android.support:support-annotations:27.1.1'
  33. implementation 'com.android.support:recyclerview-v7:27.1.1'
  34. implementation 'com.android.support:support-v4:27.1.1'
  35. **DEPS**}
  36. android {
  37. compileSdkVersion **APIVERSION**
  38. buildToolsVersion '**BUILDTOOLS**'
  39. compileOptions {
  40. sourceCompatibility JavaVersion.VERSION_1_8
  41. targetCompatibility JavaVersion.VERSION_1_8
  42. }
  43. defaultConfig {
  44. minSdkVersion **MINSDKVERSION**
  45. targetSdkVersion **TARGETSDKVERSION**
  46. applicationId '**APPLICATIONID**'
  47. ndk {
  48. abiFilters **ABIFILTERS**
  49. }
  50. versionCode **VERSIONCODE**
  51. versionName '**VERSIONNAME**'
  52. }
  53. lintOptions {
  54. abortOnError false
  55. }
  56. aaptOptions {
  57. noCompress = ['.unity3d', '.ress', '.resource', '.obb'**STREAMING_ASSETS**]
  58. }
  59. **SIGN**
  60. buildTypes {
  61. //这里需要特别注意:有密钥的将 debug 中的内容删除,因为sha1 在debug 和release 生成的apk 不一样
  62. debug {
  63. minifyEnabled **MINIFY_DEBUG**
  64. useProguard **PROGUARD_DEBUG**
  65. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'**USER_PROGUARD**
  66. jniDebuggable true
  67. }
  68. release {
  69. minifyEnabled **MINIFY_RELEASE**
  70. useProguard **PROGUARD_RELEASE**
  71. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'**USER_PROGUARD****SIGNCONFIG**
  72. }
  73. }
  74. **PACKAGING_OPTIONS****SPLITS**
  75. **BUILT_APK_LOCATION**
  76. bundle {
  77. language {
  78. enableSplit = false
  79. }
  80. density {
  81. enableSplit = false
  82. }
  83. abi {
  84. enableSplit = true
  85. }
  86. }
  87. }**SPLITS_VERSION_CODE****REPOSITORIES****SOURCE_BUILD_SETUP**

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/265426
推荐阅读
相关标签
  

闽ICP备14008679号