2017-01-14 2 views
0

Ich importierte ein Open Source-Projekt, und wenn es das Projekt synchronisiert, laufe ich auf das folgende Problem und kann nicht herausfinden, wie Sie das Problem beheben.Weder Pfad noch BaseDir darf Null oder leere Zeichenfolge sein

Error:(99, 0) Neither path nor baseDir may be null or empty string. path='null' basedir='/Users/Technologx/Desktop/Android Projects/New/sysexplorer'

Hier ist mein build.gradle Code:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion '25.0.1' 

    defaultConfig { 
     versionName "1.0" 
     versionCode = 10 
     minSdkVersion 17 
     targetSdkVersion 25 
     vectorDrawables.useSupportLibrary = true 
    } 
    signingConfigs { 
     release 
    } 
    buildTypes { 
     debug { 
      minifyEnabled false 
      shrinkResources true 
      useProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard/proguard-project.pro', 
        'proguard/proguard-google-play-services.pro' 
     } 
     release { 
      signingConfig signingConfigs.release 
      minifyEnabled true 
      shrinkResources true 
      useProguard true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 
        getDefaultProguardFile('proguard-android-optimize.txt'), 
        'proguard/proguard-project.pro', 
        'proguard/proguard-google-play-services.pro' 
     } 
    } 
    flavorDimensions "release", "default" 
    productFlavors { 
     free { 
      applicationId "com.technologx.sysexplorer.free" 
      dimension "default" 
     } 
     pro { 
      applicationId "com.technologx.sysexplorer.pro" 
      dimension "default" 
     } 
     underground { 
      applicationId "com.technologx.sysexplorer.underground" 
      dimension "default" 
     } 
     google { 
      dimension "release" 
     } 
     amazon { 
      dimension "release" 
     } 
     other { 
      dimension "release" 
     } 
    } 
    variantFilter { variant -> 
     def names = variant.flavors*.name 

     if (names.contains("underground") && (names.contains("google") || names.contains("other"))) { 
      variant.ignore = true 
     } 
    } 
    packagingOptions { 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/DEPENDENCIES' 
    } 
    lintOptions { 
     abortOnError false 
    } 
    aaptOptions { 
     noCompress 'apk' 
    } 
} 

ext { 
    supportLibVersion = '25.1.0' 
    gmsVersion = '10.0.1' 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile 'com.jaredrummler:android-processes:+' 
    compile 'com.github.mjdev:libaums:+' 
    compile 'org.apache.ftpserver:ftpserver-core:+' 
    compile 'commons-net:commons-net:+' 
    compile "com.android.support:appcompat-v7:${supportLibVersion}" 
    compile "com.android.support:design:${supportLibVersion}" 
    compile "com.android.support:exifinterface:${supportLibVersion}" 
    freeCompile "com.google.firebase:firebase-crash:${gmsVersion}" 
    freeCompile "com.google.firebase:firebase-ads:${gmsVersion}" 
} 

def props = new Properties() 
props.load(new FileInputStream(rootProject.file("keystore.properties"))) 
android.signingConfigs.release.storeFile rootProject.file(props.keyStore) 
android.signingConfigs.release.storePassword props.keyStorePassword 
android.signingConfigs.release.keyAlias props.keyAlias 
android.signingConfigs.release.keyPassword props.keyAliasPassword 

if (getGradle().getStartParameter().getTaskRequests().toString().contains("Free")) { 
    apply plugin: 'com.google.gms.google-services' 
} 

Antwort

1

Ich denke, das Problem in dieser Linie ist:

android.signingConfigs.release.storeFile rootProject.file(props.keyStore) 

Gradle sagt Ihnen, dass mögliche null oder eine leere Zeichenfolge zu file() geben wird Methode (Variable). Sie müssen es explizit in Ihrem build.gradle definieren und initialisieren. Oder Sie müssen keystore.properties Datei (im Projekt Stammverzeichnis) mit dem Inhalt wie folgt haben:

keyStore=your_keystore_file 
keyStorePassword=your_store_pass 
keyAlias=your_alias 
keyAliasPassword=your_alias_pass 
Verwandte Themen