Android Studio使用筆記

使用Gradle方式:java

若是編譯成功,運行提示android

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/home/zhaokun/work/jdk1.7.0_71/bin/java'' finished with non-zero exit value 2api

能夠在工程根目錄下運行./gradlew installDebug --stacktrace,或者在IDE窗口Gradle console 發現有下面的提示app

com.android.dex.DexIndexOverflowException: Cannot merge new index 65949 into a non-jumbo instruction!ide

在主工程的build.gradle文件,android{} 內添加以下內容gradle

    android.dexOptions {
        jumboMode = true
//        javaMaxHeapSize "2g"
    }
Eclipse 中是在project.properties中添加dex.force.jumbo=true


導入第三方庫的源代碼時,把源代碼copy到工程根目錄,源代碼目錄下新建build.gradle文件(內容根據各自工程而定):
 

buildscript {
   repositories {
       jcenter()
   }
   dependencies {
       classpath 'com.android.tools.build:gradle:1.3.0'
   }
}

allprojects {
   repositories {
       jcenter()
   }
}

apply plugin: 'android-library'


android {
   compileSdkVersion 19
   buildToolsVersion "23.0.0 rc3"

   defaultConfig {
       minSdkVersion 9
       targetSdkVersion 11
   }
   sourceSets {
       main {
           manifest.srcFile 'AndroidManifest.xml'
           java.srcDirs = ['src']
           resources.srcDirs = ['src']
           aidl.srcDirs = ['src']
           renderscript.srcDirs = ['src']
           res.srcDirs = ['res']
           assets.srcDirs = ['assets']                        jniLibs.srcDirs = ['libs']
}
}
}

dependencies {
compile files('libs/××××.jar')
}ui

 

提示下面的錯誤,是主工程和引用工程合併AndroidManifest時,衝突,
AndroidManifest.xml:33:9-41 Error:
Attribute application@label value=(@string/ime_name) from AndroidManifest.xml:33:9-41
is also present at [App2:unspecified] AndroidManifest.xml:38:9-51 value=(@string/appcenter_app_name)
解決辦法:
在主工程的AndroidManifest.xml文件的<application>內添加下面的內容tools:replace="android:label,android:name"
哪些衝突添加哪些
而後在<manifest>內添加xmlns:tools="http://schemas.android.com/tools"spa

 
最新版Android Studio NDK調試:
跟目錄下
local.properties文件指定ndk和sdk目錄
ndk.dir=/home/***/work/sdk/ndk-bundle
sdk.dir=/home/***/work/sdk

settings.gradle文件指定導入的工程
include ':mainApp'
include ':libApp'

gradle/wrapper/gradle-wrapper.properties文件
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.5-all.zip

根目錄下build.gradle文件:
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle-experimental:0.2.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

Module工程目錄下build.gradle:
apply plugin: 'com.android.model.application'
model {
    android {
        compileSdkVersion = buildToolsVersion = defaultConfig.with {
            applicationId = minSdkVersion.apiLevel = targetSdkVersion.apiLevel = }
      }
    android.buildTypes {
        release {
            minifyEnabled = proguardFiles += file()
        }
    }



    android.ndk {
        moduleName = String srcDirs = ${projectDir}String includeSrcBase = ${srcDirs}String includeSrc2Base = ${srcDirs}stl += CFlags += [
                includeSrcBase,
                includeSrc2Base]
        cppFlags += [
                includeSrcBase,
                includeSrc2Base]

}
    android.productFlavors {
        create() {
            ndk.abiFilters += }
        create() {
            ndk.abiFilters += }
        create() {
            ndk.abiFilters += }
        create() {
            ndk.abiFilters += }
        create() {
            ndk.abiFilters += }
        create() {
            ndk.abiFilters += }
        create() {
            ndk.abiFilters += }
        create()
    }

    android.dexOptions {
        jumboMode = }

    android.buildTypes {
        release {
            minifyEnabled = proguardFiles  += file()
        }
    }

    android.sources {
        {
            manifest.source.srcDirs = []java.source.srcDirs = []
            resources.source.srcDirs = []
            aidl.source.srcDirs = []
            renderscript.source.srcDirs = []
            res.source.srcDirs = []
            assets.source.srcDirs = []
            jniLibs.source.srcDirs = []
            jni.source.srcDirs = []
        }
    }
}


dependencies {
    compile project()
    compile fileTree(: , : [])
}

編譯提示java.util.zip.ZipException: duplicate entry 錯誤,多是包之間相互引用引發,能夠把build.gradle中的compile改爲provided.net

相關文章
相關標籤/搜索