我认为"ScaleGestureDetector"实例的方法"onTouchEvent()" 只有在真正处理触摸事件时才会返回"true" ,即如果它检测到多点触摸缩放手势(用两根手指).否则我认为它应该返回"false"以便让其他处理程序处理事件,例如长按以触发上下文菜单.
我发现了一些不同的东西:scaleGestureDetector.onTouchEvent()总是在我的情况下返回"true".我的MyView类的以下代码片段:
public boolean onTouchEvent(MotionEvent event) {
boolean retval = scaleGestureDetector.onTouchEvent(event);
Log.v("MyView.onTouchEvent()", "Action: " + event.getAction() +
"; PointerCount: " + event.getPointerCount() +
"; scaleGestureDetector.onTouchEvent() RetVal: " + retval);
return(retval);
}
Run Code Online (Sandbox Code Playgroud)
产生的follwing日志输出后我摸为约1秒视图使用一个手指,然后进行标尺手势与2个手指:
01-01 19:09:54.484: VERBOSE/MyView.onTouchEvent()(5930): Action: 0; PointerCount: 1; scaleGestureDetector.onTouchEvent() RetVal: true
01-01 19:09:54.510: VERBOSE/MyView.onTouchEvent()(5930): Action: 2; PointerCount: 1; scaleGestureDetector.onTouchEvent() RetVal: true
01-01 19:09:54.541: VERBOSE/MyView.onTouchEvent()(5930): Action: 2; PointerCount: 1; scaleGestureDetector.onTouchEvent() RetVal: true
01-01 19:09:54.580: VERBOSE/MyView.onTouchEvent()(5930): Action: 2; PointerCount: 1; scaleGestureDetector.onTouchEvent() RetVal: true
01-01 19:09:54.820: VERBOSE/MyView.onTouchEvent()(5930): Action: 2; …Run Code Online (Sandbox Code Playgroud) 我在 2010 年发布了一个应用程序。那时,我创建了一个本地密钥库和一个密钥,我从未更改过并用于我从那时起发布的这个应用程序的所有(大约 30 个)版本。
我从来没有遇到过任何问题,在我用 Eclipse 开发的日子里,它总是工作得很好,最近几年我切换到 Android Studio 时也没有。
我发布的最后一个版本是 2016 年 12 月 23 日。现在我想发布一个新的,用 Android Studio 生成一个签名的 APK,将它上传到开发者控制台......并收到以下错误消息:
上传失败 - 您上传的 APK 签名无效(了解有关签名的更多信息)。来自 apksigner 的错误:错误(Jar 签名者 CERT.DSA):JAR 签名 META-INF/CERT.DSA 使用摘要算法 SHA-1 和带有 DSA 的签名算法 SHA-1 这在 API 级别 8 上不受支持,为此APK 正在验证中
我尝试了(新可用的)签名版本选项的这些组合(始终具有相同的结果):
我将 Android Studio 2.3.3 与 buildToolsVersion 25.0.0 和 Gradle 3.3 版一起使用。