android studio rc3.0 升級,編譯問題解決辦法

參考官網: https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.htmlhtml

1、版本升級android

  1. gradle升級到4.1
  2. android gradle plugin升級到3.0.0
  3. buildToolsVersion 升級到26.0.2
  4. compileSdkVersion升級到26
  5. 加入google()倉庫

  ##gradle升級到4.1apache

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
  }

 

2、build.gradle加入flavorDimensionapp

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

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

        wandoujia {
            dimension "tier"
        }
    }
}

 

 

3、support-v4包升級maven

  •  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

  

4、包找不到gradle

  • 找不到類: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             }
相關文章
相關標籤/搜索