使用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