我看到所有帖子都指向各种指南,声称让ABS使用IntelliJ(Android Studio),包括here和here。
对于最新版本的ABS和AS,它们不起作用。
通常,教程与IDE不匹配。越过那个,并假设允许使用gradle而不是maven做'导入模块',我最终会得到:
Plugin with id 'android-library' not found
有没有人有一个教程可以让最新版本的ABS与最新版本的AS一起使用?
Fwiw,我尝试将Eclipse路由导出,然后尝试将其引入AS(这绝对不是我首选的路径),但我最终得到了一堆“无法执行dex:Multiple dex文件定义......“围绕杰克逊的错误。
如果它有用,这是我的build.gradle,但我的首选解决方案将使用更多的“标准”机制,而不是捣乱它,然后,更可能对其他人有用。这是文件:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
}
}
而且,我的项目目录结构:
D:.
└───T-n-T
├───.gradle
│ └───1.6
│ └───taskArtifacts
├───.idea
│ ├───copyright
│ ├───libraries
│ └───scopes
├───assets
├───bin
│ ├───classes
│ │ └───com
│ │ └───pha
│ │ └───t-n-t
│ │ ├───models
│ │ └───services
│ └───res
├───build
│ ├───apk
│ ├───assets
│ │ └───debug
│ ├───classes
│ │ └───debug
│ │ └───com
│ │ └───pha
│ │ └───t-n-t
│ │ ├───models
│ │ └───services
│ ├───dependency-cache
│ │ └───debug
│ ├───incremental
│ │ ├───aidl
│ │ │ └───debug
│ │ ├───dex
│ │ │ └───debug
│ │ ├───mergeAssets
│ │ │ └───debug
│ │ └───mergeResources
│ │ └───debug
│ ├───libs
│ ├───manifests
│ │ └───debug
│ ├───res
│ │ ├───all
│ │ │ └───debug
│ │ │ ├───drawable-hdpi
│ │ │ ├───drawable-mdpi
│ │ │ ├───drawable-xhdpi
│ │ │ ├───drawable-xxhdpi
│ │ │ ├───layout
│ │ │ ├───menu
│ │ │ ├───values
│ │ │ ├───values-sw720dp-land
│ │ │ ├───values-v11
│ │ │ ├───values-v14
│ │ │ └───xml
│ │ └───rs
│ │ └───debug
│ ├───source
│ │ ├───aidl
│ │ │ └───debug
│ │ ├───buildConfig
│ │ │ └───debug
│ │ │ └───com
│ │ │ └───pha
│ │ │ └───t-n-t
│ │ ├───r
│ │ │ └───debug
│ │ │ └───com
│ │ │ └───pha
│ │ │ └───t-n-t
│ │ └───rs
│ │ └───debug
│ └───symbols
│ └───debug
├───gen
│ └───com
│ └───pha
│ └───t-n-t
├───gradle
│ └───wrapper
├───libs
├───res
│ ├───drawable-hdpi
│ ├───drawable-ldpi
│ ├───drawable-mdpi
│ ├───drawable-xhdpi
│ ├───drawable-xxhdpi
│ ├───layout
│ ├───menu
│ ├───values
│ ├───values-sw600dp
│ ├───values-sw720dp-land
│ ├───values-v11
│ ├───values-v14
│ └───xml
└───src
└───com
└───pha
└───t-n-t
├───models
└───services
应该注意的是,这表示在尝试使其工作失败后将其回滚后的项目。
更新
我不知道它是否有进步,但它有所不同。我认为ABS的图书馆项目与我的主项目坐在一起,并作为模块添加。我认为情况就是这样,因为在IDE中,在主项目中,SherlockActivity 似乎可用。我可以扩展它(有点)并可以导入它的命名空间(com.actionbarsherlock.app)。我说有点因为一切都很好,直到我尝试建立,此时我得到:
Gradle: package com.actionbarsherlock.app does not exist
Gradle: cannot find symbol class SherlockActivity
并且构建失败。所以事情显然不太正确。
有什么建议吗?
解决
哇。太痛苦了。我最终做了什么:
如其他人所述
1)下载并提取ABS
2)将其保存在主项目下的自己的文件夹中(比如ActionBarSherlock)
3)将其导入为模块(新:使用Maven / pom.xml - 确保选中导出)
从其他来源拉出
4)排除ActionBarSherlock /目标目录(打开模块设置)
5)如果您的主项目使用支持库,请将该依赖关系更改为提供(打开模块设置)
同样,我不确定为什么这么难,或者我是否已经正确完成,或者还没有找到任何问题(我有一个空的Activity扩展了SherlockActivity,它确实构建了,我可以将它部署到,并在模拟器上运行它,但是你去了。
答案 0 :(得分:0)
对我来说,以下工作正常:
将actionbarsherlock目录复制到项目根目录
MyAppProject
| -actionbarsherlock
| --build.gradle
| -MyApp
| --build.gradle
| -build.gradle
| -settings.gradle
actionbarsherlock的build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android-library'
dependencies {
compile 'com.android.support:support-v4:18.0.+'
}
android {
compileSdkVersion 17
buildToolsVersion '17.0.0'
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
MyApp的build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
compile 'com.android.support:support-v4:18.0.+'
compile project(':actionbarsherlock')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 10
targetSdkVersion 17
}
}
settings.gradle
include ':MyApp', ':actionbarsherlock'
并且MyAppProject build.gradle中没有任何内容
下一步右击您的MyAppProject>打开模块设置 并在模块部分导入模块并选择actionbarsherlock目录。应用 并验证重新打开模块设置,转到模块,单击YourApp并验证依赖关系是否在范围编译上有actionbarsherlocj。如果是的话,你准备好了。
答案 1 :(得分:0)
从我的更新到问题,上面:
我最终做了什么:
如其他人所述
1)下载并提取ABS
2)将其保存在主项目下的自己的文件夹中(例如,ActionBarSherlock)
3)将其导入为模块( new :使用Maven / pom.xml - 确保导出
检查)
从其他来源拉
4)排除ActionBarSherlock / target目录(打开模块
设置)
5)如果您的主项目使用支持库,请更改它
依赖于提供(打开模块设置)
同样,我不确定为什么这么难,或者我是否已经正确完成,或者还没有找到任何问题(我有一个空的Activity扩展了SherlockActivity,它确实构建了,我可以将它部署到,并在模拟器上运行它,但是你去了。
<强>更新强>
此配置最终无法正常工作。我不知道怎么或为什么它崩溃了。但重新启动AS后,它崩溃了。按照here步骤 - 再次 - 做了,这一次,让它工作。