小编Sco*_*tyC的帖子

找不到'apksigner'可执行文件来手动签名APK

按照手动签署您的应用程序指南,

您可以使用Android SDK和JDK中的标准工具从命令行对您的应用进行签名

我应该有一个apksigner地方可以跑

$ apksigner sign --ks my-release-key.jks my-app.apk

这个可执行文件应该在哪里?文档从未指定我应该在签名指南或apksigner doc 上获取该工具的位置.

我不记得上次手动签署应用程序时遇到此问题.我搜索了所有可以想到的目录,没有运气(包括子目录):

  • 应用程序数据\本地\的Android\SDK
  • Program Files\Android\Android Studio
  • Program Files\Java\jdk1.8.0_91

谷歌搜索'apksigner'似乎只是出现了一些非官方的apk签名工具,但没有官方下载.我错过了什么?

运行Android Studio 2.2,Build Tools 24.0.2,JDK 1.8

谢谢

解答:更新到24.0.3解决了它.感谢Alex Klyubin,请回答他的回答.出于某种原因,Build Tools 24.0.2根本没有apksigner.

构建工具,修订版24.0.3(2016年9月)

  • 添加了apksigner,一个APK签名工具来取代jarsigner ......

android apk

23
推荐指数
4
解决办法
3万
查看次数

Android Espresso测试-点击处理程序调用startActivity()时,执行click()超时

我只是想在表单末尾测试提交按钮。

FormAndroidTest.java:

@Test
public void testSubmitButton() throws Exception {

    // Execute
    onView(withId(R.id.btnSaveFeedback))
            .perform(click());

}
Run Code Online (Sandbox Code Playgroud)

click()被调用时,我可以看到它在应用程序执行的点击,但电话永不再来(直到超时)

我将其范围缩小为由startActivity点击处理程序中的调用引起的:

FormActivity.java:

public void onSubmitClicked(View view) {

    ...

    startActivity(new Intent(this, NextActivity.class)
            .addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
            .addFlags(Intent.FLAG_ACTIVITY_TASK_ON_HOME));

    ...
}
Run Code Online (Sandbox Code Playgroud)

我将其追溯到sendUp()Espresso的Tap.java中的调用失败:

private static Tapper.Status sendSingleTap(...) {

    ...

    DownResultHolder res = MotionEvents.sendDown(uiController, coordinates, precision);
    try {
        if (!MotionEvents.sendUp(uiController, res.down)) { <-- THIS TIMES OUT
            Log.d(TAG, "Injection of up event as part of the click failed. Send cancel event.");
            MotionEvents.sendCancel(uiController, res.down); …
Run Code Online (Sandbox Code Playgroud)

android android-testing android-espresso

6
推荐指数
0
解决办法
498
查看次数

如何使用RemoteViews通知数据绑定

是否可以在自定义Android通知布局上使用数据绑定我正在使用RemoteViews作为描述的定制的Android通知布局在这里.

我们通常在布局上使用数据绑定,但需要对其进行充气

DataBindingUtil.inflate(context, R.layout.myLayout, ...)
Run Code Online (Sandbox Code Playgroud)

但是当使用RemoteView时,它通常不会被充气,它只是实例化为:

RemoteViews smallContentView = new RemoteViews(packageName, R.layout.notification);
Run Code Online (Sandbox Code Playgroud)

是否有DataBindingUtil或RemoteViews的方法允许数据绑定?

data-binding android android-notifications

6
推荐指数
0
解决办法
520
查看次数

Git - 如何更新或删除跟踪的远程分支的"本地过时"副本?

当我跑步时,git remote show origin我有一堆local out of date树枝.

当地过时了

我不关心这些分支,我想要的是没有local out of date版本,通过获取它们up to date或删除我的本地副本(同时保留origin/branchName的跟踪).

我不知道为什么我很难将这个问题搞清楚.所有我的搜索只是想要删除远程不再存在的远程分支或修剪分支的人.我认为git pull --all这将是解决方案,但这对我没有任何作用.

谢谢大家!

编辑:哇,我是个白痴,我有点过分思考它.是的,谢谢你托雷克,你直接的答案是正确的,所有我想做的就是删除本地分支.

git branch -d branchName
Run Code Online (Sandbox Code Playgroud)

理想情况下,我正在寻找删除local out of date一行中所有分支的命令,但我想我只需要为它编写一个简短的脚本.在这里,我们从技术上讲一条线:

git remote show origin | grep "local out of date" | awk '{print $1;}' | xargs -n 1 git branch -d
Run Code Online (Sandbox Code Playgroud)

完成!

git

3
推荐指数
1
解决办法
3497
查看次数