我在Android Studio中創建了一個簡單的項目來試用它。我會接受那一刻,我必須有代碼我的build.gradle文件來匹配我的IDE配置,但是因爲我對IntelliJ和Gradle都很陌生,所以我很掙扎。Android-Studio/Gradle庫部署問題
該項目是使用默認的空白活動創建的。我創建了一個簡單的,非常諾迪,視圖類如下:
package com.example.view;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Created by steve on 02/06/13.
*/
public class GraphView extends View {
/** The system logger. */
protected transient final Logger log;
public GraphView(Context context) {
super(context);
// Instantiate the system logger.
log = LoggerFactory.getLogger(getClass());
}
public GraphView(Context context, AttributeSet attrs) {
super(context, attrs);
// Instantiate the system logger.
log = LoggerFactory.getLogger(getClass());
}
public GraphView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// Instantiate the system logger.
log = LoggerFactory.getLogger(getClass());
}
}
爲了得到它來編譯/我加入的logback JAR庫相同的庫目錄中的Android的支持-V4在IDE中解析。 jar文件位於。項目結構的快速修改和所有似乎正常工作。在IDE的編輯器中,我可以看到Logger
和LoggerFactory
類中的方法。
爲了諾迪的應用程序部署到我的Nexus 4我修改的build.gradle文件還引用庫:
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
compile files('libs/logback-android-1.0.10.2.jar')
compile files('libs/slt4j-api-1.7.5.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}
它建立的很好,只是它部署在手機上,但是當默認活動開始我得到一個運行時錯誤:
Caused by: java.lang.NoClassDefFoundError: org.slf4j.LoggerFactory
at com.example.view.GraphView.<init>(GraphView.java:29)
... 25 more
我錯過了什麼?
非常感謝提前。
史蒂夫
我看到以下內容:編譯文件('libs/slt4j-api-1.7.5.jar') 不應該是libs/slf4j嗎? – TiGer