无法在 Idea 中导入 gradle android 项目
Can't import gradle android project in Idea
我开始了解 gradle 并且我使用带有 Android 插件的 Intellij Idea 13.1.3。
我想构建 u2020 项目并在 Idea 中使用 gradle 时遇到一些麻烦。
导入项目后,我得到的只是单个模块 'u2020',没有依赖项集和无意义的项目结构。另外 Idea 不识别项目的 android 框架,看不到 .java 文件,如 类.
根目录中只有一个 build.gradle 文件。
在Idea中运行项目应该怎么做?将 sourceSet 添加到 build.gradle?
更新:
build.gradle 来自 github link:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
}
}
// Manifest version information!
def versionMajor = 1
def versionMinor = 0
def versionPatch = 0
def versionBuild = 0 // bump for dogfood builds, public betas, etc.
apply plugin: 'com.android.application'
repositories {
mavenCentral()
}
dependencies {
compile 'com.android.support:support-v4:21.0.3'
compile 'com.squareup.dagger:dagger:1.2.2'
provided 'com.squareup.dagger:dagger-compiler:1.2.2'
compile 'com.squareup.okhttp:okhttp:2.1.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.1.0'
compile 'com.squareup.picasso:picasso:2.4.0'
compile 'com.squareup.retrofit:retrofit:1.8.0'
debugCompile 'com.squareup.retrofit:retrofit-mock:1.8.0'
compile 'com.jakewharton:butterknife:6.0.0'
compile 'com.jakewharton.timber:timber:2.5.0'
debugCompile 'com.jakewharton.madge:madge:1.1.1'
debugCompile 'com.jakewharton.scalpel:scalpel:1.1.1'
compile 'io.reactivex:rxjava:1.0.3'
compile 'io.reactivex:rxandroid:0.23.0'
compile 'com.etsy.android.grid:library:1.0.3'
}
def gitSha = 'git rev-parse --short HEAD'.execute([], project.rootDir).text.trim()
def buildTime = new Date().format("yyyy-MM-dd'T'HH:mm'Z'", TimeZone.getTimeZone("UTC"))
def isTravis = "true".equals(System.getenv("TRAVIS"))
def preDexEnabled = "true".equals(System.getProperty("pre-dex", "true"))
android {
compileSdkVersion 21
buildToolsVersion '21.1.1'
dexOptions {
// Skip pre-dexing when running on Travis CI or when disabled via -Dpre-dex=false.
preDexLibraries = preDexEnabled && !isTravis
}
defaultConfig {
minSdkVersion 15
targetSdkVersion 21
versionCode versionMajor * 10000 + versionMinor * 1000 + versionPatch * 100 + versionBuild
versionName "${versionMajor}.${versionMinor}.${versionPatch}"
buildConfigField "String", "GIT_SHA", "\"${gitSha}\""
buildConfigField "String", "BUILD_TIME", "\"${buildTime}\""
}
buildTypes {
debug {
applicationIdSuffix '.dev'
versionNameSuffix '-dev'
}
}
lintOptions {
abortOnError false
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
项目中的文件夹
u2020
|
|_debug
| |_AndroidManifest.xml
| |_java
| |_res
| |_assets
|
|_main
| |_androidManifest.xml
| |_java
| |_all other android stuff
|
|_release
| |_java
|
|_build.gradle
|_other stuff
很可能 IJ 的 Gradle 项目导入不 Android 感知并且正确导入 Java 应用了 java
插件的项目。 com.android.application
扩展 java-base
但不扩展 java
。最简单的解决方案是使用 Android Studio。
只需将此项目作为 gradle 模块导入idea即可。它必须有效。
我开始了解 gradle 并且我使用带有 Android 插件的 Intellij Idea 13.1.3。 我想构建 u2020 项目并在 Idea 中使用 gradle 时遇到一些麻烦。
导入项目后,我得到的只是单个模块 'u2020',没有依赖项集和无意义的项目结构。另外 Idea 不识别项目的 android 框架,看不到 .java 文件,如 类.
根目录中只有一个 build.gradle 文件。 在Idea中运行项目应该怎么做?将 sourceSet 添加到 build.gradle?
更新: build.gradle 来自 github link:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
}
}
// Manifest version information!
def versionMajor = 1
def versionMinor = 0
def versionPatch = 0
def versionBuild = 0 // bump for dogfood builds, public betas, etc.
apply plugin: 'com.android.application'
repositories {
mavenCentral()
}
dependencies {
compile 'com.android.support:support-v4:21.0.3'
compile 'com.squareup.dagger:dagger:1.2.2'
provided 'com.squareup.dagger:dagger-compiler:1.2.2'
compile 'com.squareup.okhttp:okhttp:2.1.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.1.0'
compile 'com.squareup.picasso:picasso:2.4.0'
compile 'com.squareup.retrofit:retrofit:1.8.0'
debugCompile 'com.squareup.retrofit:retrofit-mock:1.8.0'
compile 'com.jakewharton:butterknife:6.0.0'
compile 'com.jakewharton.timber:timber:2.5.0'
debugCompile 'com.jakewharton.madge:madge:1.1.1'
debugCompile 'com.jakewharton.scalpel:scalpel:1.1.1'
compile 'io.reactivex:rxjava:1.0.3'
compile 'io.reactivex:rxandroid:0.23.0'
compile 'com.etsy.android.grid:library:1.0.3'
}
def gitSha = 'git rev-parse --short HEAD'.execute([], project.rootDir).text.trim()
def buildTime = new Date().format("yyyy-MM-dd'T'HH:mm'Z'", TimeZone.getTimeZone("UTC"))
def isTravis = "true".equals(System.getenv("TRAVIS"))
def preDexEnabled = "true".equals(System.getProperty("pre-dex", "true"))
android {
compileSdkVersion 21
buildToolsVersion '21.1.1'
dexOptions {
// Skip pre-dexing when running on Travis CI or when disabled via -Dpre-dex=false.
preDexLibraries = preDexEnabled && !isTravis
}
defaultConfig {
minSdkVersion 15
targetSdkVersion 21
versionCode versionMajor * 10000 + versionMinor * 1000 + versionPatch * 100 + versionBuild
versionName "${versionMajor}.${versionMinor}.${versionPatch}"
buildConfigField "String", "GIT_SHA", "\"${gitSha}\""
buildConfigField "String", "BUILD_TIME", "\"${buildTime}\""
}
buildTypes {
debug {
applicationIdSuffix '.dev'
versionNameSuffix '-dev'
}
}
lintOptions {
abortOnError false
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
项目中的文件夹
u2020
|
|_debug
| |_AndroidManifest.xml
| |_java
| |_res
| |_assets
|
|_main
| |_androidManifest.xml
| |_java
| |_all other android stuff
|
|_release
| |_java
|
|_build.gradle
|_other stuff
很可能 IJ 的 Gradle 项目导入不 Android 感知并且正确导入 Java 应用了 java
插件的项目。 com.android.application
扩展 java-base
但不扩展 java
。最简单的解决方案是使用 Android Studio。
只需将此项目作为 gradle 模块导入idea即可。它必须有效。