ActionBarSherlock / IntelliJ(Android Studio) - 最新

时间:2013-08-06 00:15:55

标签: actionbarsherlock android-studio

我看到所有帖子都指向各种指南,声称让ABS使用IntelliJ(Android Studio),包括herehere

对于最新版本的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,它确实构建了,我可以将它部署到,并在模拟器上运行它,但是你去了。

2 个答案:

答案 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步骤 - 再次 - 做了,这一次,让它工作。