我在Eclipse中有一个Android项目我希望将其转换为使用Ant构建.
我怎样才能做到这一点?我已经尝试导出一个Ant构建文件,但我很确定它不会起作用(当使用导出的文件运行ant时也不行).我不太了解Ant,所以一些解释也会有所帮助.
编辑:现在我似乎设法创建了所需的构建文件,但我需要添加项目库像admob.jar,以便被ant看到并用于构建.因为我收到以下错误
-dex:
[echo] Converting compiled files and external libraries into C:\Users\Jason
\Documents\Programming\Android\Android SVN\trunk\GPSAlarm\BusSnooze\bin\classes.
dex...
[apply]
[apply] UNEXPECTED TOP-LEVEL EXCEPTION:
[apply] com.android.dx.util.ExceptionWithContext
[apply] at com.android.dx.util.ExceptionWithContext.withContext(Exceptio
nWithContext.java:46)
[apply] at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslato
r.java:340)
[apply] at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.ja
va:131)
[apply] at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.jav
a:85)
[apply] at com.android.dx.command.dexer.Main.processClass(Main.java:297)
[apply] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:
276)
[apply] at com.android.dx.command.dexer.Main.access$100(Main.java:56)
[apply] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.jav
a:228)
[apply] at com.android.dx.cf.direct.ClassPathOpener.processArchive(Class
PathOpener.java:245)
[apply] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPath
Opener.java:130)
[apply] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpe
ner.java:108)
[apply] at com.android.dx.command.dexer.Main.processOne(Main.java:245)
[apply] at com.android.dx.command.dexer.Main.processAllFiles(Main.java:1
83)
[apply] at com.android.dx.command.dexer.Main.run(Main.java:139)
[apply] at com.android.dx.command.dexer.Main.main(Main.java:120) …Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的build.gradle文件,其中包含以下内容:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4.1'
}
}
apply plugin: 'android'
android {
buildToolsVersion "17.0.0"
compileSdkVersion 17
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
task generateSources {
doFirst {
def script = "python GenerateSources.py".execute()
script.in.eachLine {line -> println line}
script.err.eachLine {line -> println "ERROR: " + line}
script.waitFor()
}
}
Run Code Online (Sandbox Code Playgroud)
我想要的是generateSources在java编译开始之前运行任务.我找到了几个解决方案,如何做到这一点compileJava.dependsOn("generateSources"),但不幸的是他们给出了一个错误:
A problem occurred evaluating root project 'Android'.
> Could not …Run Code Online (Sandbox Code Playgroud) 我已经进行了广泛的搜索,但可能由于Android Studio和Gradle的新功能,我还没有找到任何关于如何执行此操作的说明.我想基本上完成本文中描述的内容,但使用Android Studio,Gradle和Windows而不是Eclipse和Linux.
是否可以将支持Renderscript库与Gradle 一起使用?如果是这样,你如何将它包含在你的项目中?
从IntelliJ 13获得此投诉:
8:15:48 PM Gradle '<project>' project refresh failed:
SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
Build file '/<project>/build.gradle' line: 20
: Gradle settings
Run Code Online (Sandbox Code Playgroud)
我试图在我能想到的每个目录中垃圾邮件我的local.properties但仍然收到此错误.是什么赋予了?
对于使用钻石操作符的库,我需要1.7.
我遵循了这些答案......但没有快乐.
从gradle构建
compileSdkVersion 19
buildToolsVersion '19.0.3'
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
defaultConfig {
minSdkVersion 10
targetSdkVersion 19
versionCode 22
versionName "1.3.1"
}
Run Code Online (Sandbox Code Playgroud)
错误:任务':MyApp:compileDefaultFlavorDebugJava'的执行失败.
无效的源代码版本:1.7
Java home设置为:$ echo $ JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
我想知道,如果有任何方法,如何skip packaging and dexing在Eclipse和ADT中设置IntelliJ IDEA.Additional VM OptionsIntelliJ中的Android DX Compiler部分中有字段Preferences,也许这可能是一种方式,如何设置它.我还要感谢另一个提示,如何加快IntelliJ Android项目的构建速度.
我想在包中更新我的Android.mk文件以构建新的包,但我不明白它的目的LOCAL_MODULE_TAGS是什么.
怎么LOCAL_MODULE_TAGS办?
我想知道两者之间的区别build_flavor.
eng&user-debug
eng和用户构建风味之间的区别很明显.但是eng和用户调试让我感到困惑.在用户调试中不存在的eng中提供的附加调试工具是什么?
例如.
If I take only the Kernel being built:
Run Code Online (Sandbox Code Playgroud)
Will the Debugging levels differ for the eng and user-debug builds?
我正面临一个问题,用户调试版本在Android手机上启动.但是build build不是,build_flavor是两个构建之间的唯一区别.
任何帮助/指针表示赞赏.谢谢!
我有一个2种口味的Android应用程序:-flavor1 -flavor2
我的目录树是:
/src/main
/src/flavor1
/src/flavor2
Run Code Online (Sandbox Code Playgroud)
main具有默认的源集.flavor1和flavor2目录有自己的源集,gradle自动获取.如果我将一个资源文件添加到flavor目录中,它会从main覆盖它,并且工作正常.
但是,如果我在flavor2中添加一个java类来覆盖"main"中的另一个,(例如,在flavor2中需要不同的活动),它不会替换它,并且它说我的项目中有一个重复的类.我只是通过从"main"目录中删除类并将其添加到所有flavor文件夹来实现此功能.
有没有办法像资源文件一样覆盖java类?为什么会这样?
android ×10
android-build ×10
gradle ×5
build ×2
ant ×1
dex ×1
eclipse ×1
frameworks ×1
git ×1
java ×1
linux ×1
linux-kernel ×1
makefile ×1
package ×1
renderscript ×1