2016-09-05 38 views
8

Tôi đã bắt đầu làm việc trên một dự án hiện có bao gồm cả NDK của Android. Tôi có hai vấn đề trong build.gradle, điều này là không thể đối với tôi để xây dựng ứng dụng. Đối với thông tin của bạn, đồng nghiệp của tôi (những người đang làm việc trên nó) đã có thể xây dựng ứng dụng.Không thể giải quyết biểu tượng 'công cụ' và 'GradleException'

Tôi đã nhập NDK, từ cấu trúc dự án tôi có thể thấy đường dẫn NDK chính xác của Android.

Sau đây là cách build.gradle trông giống như:

import org.apache.tools.ant.taskdefs.condition.Os 

buildscript { 
repositories { 
    maven { url 'https://maven.fabric.io/public' } 
} 

dependencies { 
    // The Fabric Gradle plugin uses an open ended version to react 
    // quickly to Android tooling updates 
    classpath 'io.fabric.tools:gradle:1.21.5' 
} 
} 
allprojects { 
repositories { 
    maven { url "https://jitpack.io" } 
} 
} 
apply plugin: 'com.android.application' 
apply plugin: 'io.fabric' 
apply plugin: 'realm-android' 

repositories { 
maven { url 'https://maven.fabric.io/public' } 
} 

android { 
compileSdkVersion 24 
buildToolsVersion "24.0.2" 
dataBinding{ 
    enabled = true; 
} 

defaultConfig { 
    applicationId "com.lucien.myapp" 
    minSdkVersion 16 
    targetSdkVersion 24 
    versionCode 1 
    versionName "1.0.0" 

    ndk { 
     moduleName "DSPLib-jni" 
    } 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 

sourceSets.main.jni.srcDirs = [] // disable automatic ndk-build call, which ignore our Android.mk 
sourceSets.main.jniLibs.srcDir 'src/main/libs' 

// call regular ndk-build(.cmd) script from app directory 
task ndkBuild(type: Exec) { 
    workingDir file('src/main') 
    commandLine getNdkBuildCmd() 
} 

tasks.withType(JavaCompile) { 
    compileTask -> compileTask.dependsOn ndkBuild 
} 

task cleanNative(type: Exec) { 
    workingDir file('src/main') 
    commandLine getNdkBuildCmd(), 'clean' 
} 

clean.dependsOn cleanNative 

} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:appcompat-v7:24.2.0' 
compile 'com.android.support:design:24.2.0' 
compile 'com.android.support:support-v4:24.2.0' 

compile 'com.github.PhilJay:MPAndroidChart:v2.2.5' 
compile 'com.orhanobut:dialogplus:[email protected]' 
compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
    transitive = true; 
} 
compile 'com.squareup.retrofit2:retrofit:2.1.0' 
compile 'com.squareup.retrofit2:converter-gson:2.0.2' 
compile 'com.google.code.gson:gson:2.7' 

} 

def getNdkDir() { 
if (System.env.ANDROID_NDK_ROOT != null) 
    return System.env.ANDROID_NDK_ROOT 

Properties properties = new Properties() 
properties.load(project.rootProject.file('local.properties').newDataInputStream()) 
def ndkdir = properties.getProperty('ndk.dir', null) 
if (ndkdir == null) 
    throw new GradleException("NDK location not found. Define location with ndk.dir in the local.properties file or with an ANDROID_NDK_ROOT environment variable.") 

return ndkdir 

} 

def getNdkBuildCmd() { 
def ndkbuild = getNdkDir() + "/ndk-build" 
if (Os.isFamily(Os.FAMILY_WINDOWS)) 
    ndkbuild += ".cmd" 

return ndkbuild 

} 

Tôi gặp sự cố với dòng đầu tiên, cố gắng để nhập khẩu "org.apache.tools.ant.taskdefs.condition.Os": Không thể giải quyết biểu tượng 'công cụ'

tools issue

Và cùng một loại vấn đề cho "ném GradleException mới (" ... ")"

GradleException issue

Tôi có cần cập nhật nội dung nào đó trong build.gradle của mình không? Hoặc vấn đề là ở một nơi khác?

Cảm ơn!

+0

Ông có thể chia sẻ Gradle phiên bản bạn có? Và đó có phải là phiên bản giống như đồng nghiệp của bạn không? – Stanislav

+0

Xin chào Stanislav, tôi đang sử dụng Gradle 2.14.1 và đồng nghiệp của tôi. – Guimareshh

+0

Đã 3 tuần rồi, bạn có giải quyết vấn đề này không? –

Trả lời

0

Đối với những người đến đây, tôi đã giải quyết được sự cố của mình bằng cách quay lại Android Studio 2.1. Kể từ khi phát hành phiên bản ổn định 2.2, nó hoạt động rất tốt.

+0

cách quay lại Android Studio 2.1? –

+1

@ K.Sopheak Bạn có thể tìm phiên bản cũ của AS tại đây: http://tools.android.com/download/studio/canary – Guimareshh

2

Bạn có thể sử dụng bất kỳ trường hợp ngoại lệ có sẵn khác từ java như:

throw new FileNotFoundException("Could not read version.properties!") 
Các vấn đề liên quan