android studio rc3.0 升级,编译问题解决办法

参考官网: https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html

一、版本升级

  1. gradle升级到4.1
  2. android gradle plugin升级到3.0.0
  3. buildToolsVersion 升级到26.0.2
  4. compileSdkVersion升级到26
  5. 加入google()仓库

  ##gradle升级到4.1

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

buildscript {
repositories {
jcenter()
mavenLocal()
google() //##加入google()仓库

}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'//android gradle plugin升级到3.0.0
    }
}

allprojects {

repositories {
jcenter()
mavenLocal()
google()//##加入google()仓库
    }

}

 

android {
    compileSdkVersion 26 //##compileSdkVersion升级到26
    buildToolsVersion '26.0.2' //##buildToolsVersion 升级到26.0.2
  }

 

二、build.gradle加入flavorDimension

  • flavorDimension定义
 android {
   flavorDimensions "tier", "minApi" //##flavorDimension定义,且需要都是用上

    productFlavors {
        
        dev {
            minSdkVersion 14
            dimension "minApi" //##flavorDimension使用
        }
        prod {
            minSdkVersion 14
            dimension "tier" 
        }

        wandoujia {
            dimension "tier"
        }
    }
}

 

 

三、support-v4包升级

  •  com.android.support-v4升级到26.1.2
  • android.enableAapt2=false
 compile 'com.android.support:support-v4:26.1.0'

  

##gradle-wrapper.properties
android.enableAapt2=false

  

四、包找不到

  • 找不到类:android.util.FloatMath.sqrt()
##Math.sqrt()替换
FloatMath.sqrt(squaredNorm);
=> (float)Math.sqrt(squaredNorm)
  • 找不到类:org.apach.util.encodingUtils
compile 'org.apache.httpcomponents:httpcore:4.4.4'
  • 找不到类:android.support.v4.view.KeyEventCompat;
KeyEventCompat.hasNoModifiers(event)
=>
event.hasNoModifiers() //event是KeyEvent对象
  • 找不到类:org.apache.http.conn.util.InetAddressUtils;
 1            String ip = getLocalIpAddress();
 2             if (!InetAddressUtils.isIPv4Address(ip)) {
 3                 return mac_s;
 4             }
 5             InetAddress ipAddress = InetAddress.getByName(ip);
 6             if (ipAddress == null) {
 7                 return mac_s;
 8             }
 9 
10 =>
11             String ip = getLocalIpAddress();
12             InetAddress ipAddress = InetAddress.getByName(ip);
13             if (ipAddress.getAddress().length != 4) {
14                 return mac_s;
15             }
16             if (ipAddress == null) {
17                 return mac_s;
18             }

 

       

posted @ 2017-11-08 17:00  july89  阅读(1011)  评论(0)    收藏  举报