当前位置: 首页>移动开发>正文

APP Android Studio 在线升级 android studio升级教程


  • 前言
  • 项目改造
  • 准备工作:
  • 项目修改:
  • (1)最好的参照项目:用3.0的工具去创建一个新项目
  • (2)gradle 3.0.0对应的buildToolsVersion ‘26.0.2’以上
  • (3)把compile 改成,找对应的修改,这个在新项目中可以找到
  • (4)类似如下配置
  • 遇到的问题:
  • 错误一:
  • 使用butterknife要注意修改成如下:
  • 错误二:
  • 错误三: 主项目无法使用lib的jar包问题
  • apk包无法在其他手机安装
  • NetWork无法查看详细问题
  • 多渠道打包配置修改
  • 输入法显示异常问题


前言

3.0工具下老项目不做修改,正常使用要求:

gradle 依旧使用 2.3.3

3.0修改文档官方地址:
https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html

项目改造

准备工作:

1.要较好的网络,要自动下载很多东西,另外4.1如果下载不到,可以直接到官方下
https://gradle.org/releases

项目修改:

(1)最好的参照项目:用3.0的工具去创建一个新项目

tip:貌似现在新建项目不会自动创建根文件夹坑

(2)gradle 3.0.0对应的buildToolsVersion ‘26.0.2’以上

(3)把compile 改成,找对应的修改,这个在新项目中可以找到

implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:26.0.0-beta1'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:0.5'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:2.2.2'
implementation project(':networklib')

(4)类似如下配置

apply plugin: ‘com.neenbedankt.android-apt’

要修改成:

annotationProcessor ‘com.neenbedankt.gradle.plugins:android-apt:1.8’

说明:如果不知道版本可以项目设置中的Library dependency搜,除去版本号全名搜,搜不到再后面逐步删除单个单词再搜索,保存后再把implementation改成annotationProcessor

遇到的问题:

错误一:

Error:Execution failed for task ‘:app:preReleaseBuild’.
Android dependency ‘com.android.support:design’ has different version for the compile (22.2.1) and runtime (25.0.0) classpath. You should manually set the same version via DependencyResolution

解决:
思路:包重复,剔除即可。
最终逐个排除,查到下面这个包含

implementation ‘com.foamtrace:photopicker:1.0’,{
exclude group: ‘com.android.support’, module: ‘design’
}

//下面这个包含23.3.2的版本(解决recyclerview-v7重复问题)。

implementation ‘com.malinskiy:superrecyclerview:1.1.4’,{
exclude group: ‘com.android.support’, module: ‘recyclerview-v7’
}

使用butterknife要注意修改成如下:

annotationProcessor ‘com.jakewharton:butterknife-compiler:8.4.0’

另外注意在主项目中要添加annotationProcessor ‘com.jakewharton:butterknife-compiler:8.4.0’,否则会空指针

错误二:

Error:Execution failed for task ‘:app:transformDexArchiveWithExternalLibsDexMergerForDebug’.java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

解决同下:

错误三: 主项目无法使用lib的jar包问题

答:
在解决这个问题前,先填个坑。。在lib工程,要把 implementation改成api,否则你无法在主项目中调用。
我这里代码重复错误就是因为主项目又再去引用一次。

apk包无法在其他手机安装

情景:打包到测试机A,然后把outputs里的apk包发到测试机B,C,B和C都显示测试包,无法安装。

描述:==巨坑==,不知道这是bug,还是我哪里配错了,解决被周末因为这个问题拉来加班。。。。

解决办法:使用新的命令,在Build选卡中选择Build APK(s),然后这些包都是可以安装到其他手机的。

NetWork无法查看详细问题

I finally got it to work by doing the following:

  • Leave compile SDK at 26
  • In the run configuration have “Enable advanced profiling” activated, even though it states this is only needed for API level < 26
  • Disable Proguard (this seems to be the most important)

大意:
1. compile 26
2. 点击那个run confiuration把这个选项Enable advanced profiling选上
3. 需要关闭混淆
4.

多渠道打包配置修改

Caused by: org.gradle.process.internal.ExecException: Process ‘command ‘D:\androidstudio\sdk\build-tools\26.0.2\aapt.exe” finished with non-zero exit value 1
Execution failed for task ‘:moduletest01:verifyBaiduReleaseResources’.

总的来说:

注意如下配置:

flavorDimensions "default"

    productFlavors {
        normal {
        }

        baidu {
        }
    }

    lintOptions {
        abortOnError false
        checkReleaseBuilds false
        // 防止在发布的时候出现因MissingTranslation导致Build Failed!
        disable 'MissingTranslation'
    }

https://www.xamrdz.com/mobile/4q51942044.html

相关文章: