几个小时后,我终于可以构建我的应用程序了。使用gradlew,它使用两个子模块进行构建。
无论何时我将结果安装到我的手机上,它都会在第一个创建的类(Activity)上自动抛出一个UndefinedClass错误。
build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
compile files('libs/crittercism_v3_0_3_sdkonly.jar')
compile project(':libraries:slidingmenu')
compile project(':libraries:actionbarsherlock')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}一个settings.gradle
include 'libraries:actionbarsherlock', ':libraries:slidingmenu', ':NewApp'我有点迷失了,它正在构建,但它显然没有将类添加到包中。
发布于 2013-06-23 02:31:02
要让它在Android studio / Gradle上工作还不是很简单。我不得不说,它的工作原理仍然相当混乱,但在阅读了许多答案后,我终于让它工作了。
如果您有一个具有以下依赖关系的项目:
对android库来说,包、uses sdk和空应用程序是严格的最低要求:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mymodule">
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="16"/>
<application />
</manifest>这些模块具有这样的结构
我的第一个模块是这个build.gradle文件
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
} } apply plugin: 'android-library'
repositories {
mavenLocal()
mavenCentral() }
dependencies {
compile 'com.android.support:support-v4:13.0.0'
compile project(':SecondModule') }
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}请注意,该模块依赖于项目(:depens模块),这意味着在项目的根目录下是SecondModule,其中也有一个build.gradle文件。
SecondModule build.gradle如下所示。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android-library'
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
compile 'com.android.support:support-v4:13.0.0'
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}第二个模块不依赖于任何东西,除了android support。要使其正常工作,您必须安装google存储库和android支持存储库。
MainApp gradle文件如下所示:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
compile 'com.android.support:support-v4:13.0.0'
compile project(':MyModule')
compile project(':SecondModule')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}该文件应用的是android插件,而不是android库插件。如果一切正常,那么它应该编译得很好,并且可以运行。另外,由于该项目恰好处于开发阶段,请确保您安装了最新版本,并且将来这个答案可能会变得毫无意义。
请确保您从不使用android support jar,而是使用maven存储库。缺点是,它可能需要一段时间来编译,但它会工作。
发布于 2013-06-09 15:25:18
我已经为此目的迁移了我的android应用程序项目,并且工作正常。这是我的构建的样子:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
apply plugin: 'eclipse'
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
compile 'com.google.guava:guava:14.0.1'
compile 'com.google.code.gson:gson:2.2.4'
compile 'commons-io:commons-io:2.4'
compile 'pepuch:java-socket-server:1.0-SNAPSHOT'
compile 'pepuch:multiplayergame-socket-server:1.0-SNAPSHOT'
}
android {
compileSdkVersion 10
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aild.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
}
}我没有将它集成到任何集成开发环境中,但是在我运行gradle installDebug之后,它在我安装的手机上生成了*.apk。顺便说一句,我没有改变项目结构,但保存了旧的目录结构。
https://stackoverflow.com/questions/17005236
复制相似问题