我希望能够在使用ant安装后启动我的应用程序就像在eclipse中按run
按钮时一样。
在命令行上创建项目后是否有现有的ant任务,或者是否有可以用ant执行的命令?
答案 0 :(得分:32)
使用Navin提供的命令,我能够创建这个蚂蚁目标:
<target name="run">
<exec executable="adb">
<arg value="shell"/>
<arg value="am"/>
<arg value="start"/>
<arg value="-a"/>
<arg value="android.intent.action.MAIN"/>
<arg value="-n"/>
<arg value="{package.name}/{activity}"/>
</exec>
</target>
在命令行上执行:
ant debug install run
这一切都在游泳。
修改强>
正如WarrenFaith在评论中有用地指出{activity}
应该是带有.
前缀的主要活动的类名。
所以最后一个arg的值的完整示例是
org.package.name/.MyCustomActivity
答案 1 :(得分:13)
通常,将以下目标复制到build.xml或custom_rules.xml。请注意,在custom_rules.xml中(如果它尚不存在),您需要将其包装在元素中。
<target name="start">
<xpath input="AndroidManifest.xml"
expression="/manifest/@package"
output="manifest.package" />
<xpath input="AndroidManifest.xml"
expression="/manifest/application/activity[intent-filter/action/@android:name='android.intent.action.MAIN']/@android:name"
output="manifest.main" />
<echo level="info">Restart main activity ${manifest.package}/.${manifest.main}</echo>
<exec executable="${android.platform.tools.dir}/adb">
<arg value="shell"/>
<arg value="am"/>
<arg value="start"/>
<arg value="-S"/>
<arg value="-a"/>
<arg value="android.intent.action.MAIN"/>
<arg value="-n"/>
<arg value="${manifest.package}/.${manifest.main}"/>
</exec>
</target>
答案 2 :(得分:10)
从ant执行adb shell am start -a android.intent.action.MAIN -n <Package_name>/.<Activity>
应启动你的app.ofcourse你需要构建和安装试图启动应用程序的应用程序...你可以使用android build xml来构建和使用“adb install”来安装应用...
答案 3 :(得分:0)
<target name="run">
<exec executable="adb">
<arg value="shell"/>
<arg value="am"/>
<arg value="start"/>
<arg value="-a"/>
<arg value="android.intent.action.MAIN"/>
<arg value="-n"/>
<arg value="{package.name}/{activity}"/>
</exec>
</target>
我只想说{package.name}
应该等于<manifest>
的{{1}}而package
应该是主要活动的完全限定名称(即包名称,例如com.example.activty.MainActivty)。