2015-04-27 3 views
0

Я импортируя проект: https://github.com/Kennyc1012/OpenImgur и после получения Imgurs идентификатора клиента и API Client Secret, Bulding проект хорошо, но затем пытается запустить приложение отмечает ошибки:Ошибка сбоя BuildConfig ';' Ожидается

enter image description here

В пределах BuildConfig.java файл:

public final class BuildConfig { 
    public static final boolean DEBUG = Boolean.parseBoolean("true"); 
    public static final String APPLICATION_ID = "com.kennyc.open.imgur"; 
    public static final String BUILD_TYPE = "debug"; 
    public static final String FLAVOR = ""; 
    public static final int VERSION_CODE = 21; 
    public static final String VERSION_NAME = "2.6.2"; 
    // Fields from default config. 
    public static final String API_CLIENT_ID = fd8drdsgdsgsd4; 
    public static final String API_CLIENT_SECRET = 5d4f9adab5zdfhfdxzxdfbdbc72a18087ce; 
} 

Я поместил API идентификатор клиента и секрет клиента так же, как было отмечено в build.gradle:

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

    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.1.0' 
     classpath 'io.fabric.tools:gradle:1.+' 
    } 
} 

apply plugin: 'com.android.application' 
apply plugin: 'io.fabric' 

repositories { 
    maven { url 'https://dl.bintray.com/kennyc1012/maven' } 
    maven { url "http://dl.bintray.com/amulyakhare/maven" } 
    mavenCentral() 
    maven { url 'https://maven.fabric.io/public' } 
    jcenter() 
    flatDir { 
     dirs 'libs' 
    } 
} 

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" // 22.0.1 

    defaultConfig { 
     applicationId "com.kennyc.open.imgur" 
     minSdkVersion 15 
     targetSdkVersion 21 
     versionCode 21 
     versionName "2.6.2" 
     buildConfigField "String", "API_CLIENT_ID", "fd8drdsgdsgsd4" 
     buildConfigField "String", "API_CLIENT_SECRET", "5d4f9adab5zdfhfdxzxdfbdbc72a18087ce" 
    } 

    buildTypes { 

     release { 
      ext.enableCrashlytics = true 
      minifyEnabled false 
      manifestPlaceholders = [fabric_key: ""] 
     } 

     debug { 
      ext.enableCrashlytics = false 
      minifyEnabled false 
      manifestPlaceholders = [fabric_key: ""] 
     } 
    } 

    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_7 
     targetCompatibility JavaVersion.VERSION_1_7 
    } 
} 

Однако ошибка сохраняется. Если создается файл BuildConfig, почему эта ошибка возникает?

+0

Почему вы добавляете ключи API в сгенерированный 'BuildConfig'? –

ответ

1

Основываясь на вашем BuildConfig.java, эти Strings должны иметь цитаты:

public static final String API_CLIENT_ID = "fd8drdsgdsgsd4"; 
public static final String API_CLIENT_SECRET = "5d4f9adab5zdfhfdxzxdfbdbc72a18087ce"; 

оригинальный проект на Github выглядит следующим образом:

buildConfigField "String", "API_CLIENT_ID", project.API_CLIENT_ID 
buildConfigField "String", "API_CLIENT_SECRET", project.API_CLIENT_SECRET 

project. означает, что API_CLIENT_ID и API_CLIENT_SECRET определены в gradle.properties файл. (Это не находится в репо).

Я хотел бы создать gradle.properties и поместить в тот же каталог, что и build.gradle, что-то вроде этого:

API_CLIENT_ID = fd8drdsgdsgsd4 
API_CLIENT_SECRET = 5d4f9adab5zdfhfdxzxdfbdbc72a18087ce 
FABRIC_KEY = some key 

Проект написан только легко поменять переменные с вашими собственными gradle.properties.

+0

Я попытался выполнить жесткий код в файле BuildConfig.java, но он всегда записывается во время выполнения – Sauron

+0

Как добавить файл 'gradle.propertles' в приложение, правильно? – Sauron

+0

@Sauron Пожалуйста, см. Мой ответ, я сказал: «Я бы создал gradle.properties и поместил в тот же каталог, что и build.gradle'. –

Смежные вопросы