小编Dan*_*ich的帖子

我的Android启动画面应该是什么分辨率?

我正在创建一个启动画面,在我的Android应用程序加载时会显示.我想以正确的大小创建它,以便Android不会自动向上或向下自动缩放以适应屏幕.(这是一个位图图片,一幅油画的照片,所以我不能把它变成九个补丁.)

但我至少有三种重要的屏幕尺寸:320x480,480x854(Droid)和480x800(Nexus One).

我已经阅读了有关支持多种屏幕尺寸的文档,但我仍然没有看到我应该如何为Droid/Nexus配置不同的启动屏幕(就Android而言,它们都是"hdpi"资源) ,我不知道在任何情况下我的闪屏应该有多大.(Droid的操作系统标题栏/菜单有多高?N1?)

我应该以多大的尺寸制作这些图像,如何告诉Android在给定的屏幕上使用正确的尺寸?

android resolution splash-screen

30
推荐指数
2
解决办法
4万
查看次数

强制IE contentEditable元素在Enter键上创建换行符,而不会破坏撤消

在Internet Explorer上,<p></p>每次按Enter键时,contentEditable DIV都会创建一个新段落(),而Firefox会创建一个<br/> 标记.

作为讨论在这里,可以使用JavaScript来拦截回车按键,并使用range.pasteHTML创建<br/>代替.但这样做打破了撤销菜单; 一旦你按Enter键,你就不能再撤消该点了.

如何强制contentEditable元素在Enter上创建单个换行符而不会破坏撤消?

html undo contenteditable

29
推荐指数
2
解决办法
1万
查看次数

刷新时激活更新的服务工作者

当服务工作者更新时,它不会正确控制页面; 它进入"等待"状态,等待激活.

令人惊讶的是,更新后的服务工作人员在刷新页面后甚至无法控制选项卡.谷歌解释说:

https://developers.google.com/web/fundamentals/instant-and-offline/service-worker/lifecycle

即使您只有一个标签打开演示,刷新页面也不足以让新版本接管.这是由于浏览器导航的工作原理.导航时,当前页面在收到响应标头之前不会消失,即使这样,如果响应有Content-Disposition 标题,当前页面也可能保留.由于这种重叠,当前服务工作者总是在刷新期间控制客户端.

要获取更新,请使用当前服务工作人员关闭或远离所有选项卡.然后,当您再次导航到演示时,您应该看到马[更新内容].

此模式与Chrome更新的方式类似.Chrome在后台下载更新,但在Chrome重新启动后才会应用.同时,您可以继续使用当前版本而不会中断.然而,这在开发过程中是一种痛苦,但DevTools有办法让它变得更容易,我将在本文后面介绍.

在多个选项卡的情况下,此行为是有意义的.我的应用程序是一个需要自动更新的包; 我们不能混合和匹配旧捆绑的一部分和新捆绑的一部分.(在本机应用程序中,原子性是自动且有保证的.)

但是在单个选项卡的情况下,我称之为应用程序的"最后打开选项卡",这种行为不是我想要的.我想刷新最后一个打开的标签来更新我的服务人员.

(很难想象当最后一个打开的标签刷新时,任何人都希望旧的服务工作者继续运行.谷歌的"导航重叠"论证听起来像是一个不幸的错误的好借口.)

我的应用通常只在一个标签中使用.在生产中,我希望我的用户能够通过刷新页面来使用最新的代码,但这不起作用:旧的服务工作者将在刷新时保持控制.

我不想告诉用户,"要接收更新,请务必关闭或远离我的应用." 我想告诉他们,"只是刷新."

当用户刷新页面时,如何激活更新的服务工作者?

编辑:有一个答案我知道这是快速,简单和错误:skipWaiting在服务工作者的安装事件中.skipWaiting将使新服务工作程序在更新下载后立即生效,同时打开旧页面选项卡.这使得更新不安全地非原子化; 这就像在应用程序运行时替换本机应用程序包.那对我来说不行.我需要等到用户刷新上一个打开的选项卡的页面.

service-worker

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

iPhone崩溃日志说"版本:???"

我正在开发一个iPhone应用程序并进行临时分发以进行beta测试.我的用户正在向我发送崩溃日志,说明:

Identifier:      MyAppName
Version:         ??? (???)
Code Type:       ARM (Native)
Run Code Online (Sandbox Code Playgroud)

我无法理解如何用真实版本号替换这些问号.我已经将我的Info.plist配置为包含CFBundleVersion和CFBundleShortVersionString,但这没有帮助...崩溃日志仍然只包含问号而不是我期望的版本号.

如何设置我的版本以便它显示在崩溃日志中?

编辑显然,由于iPhone CrashReporter中可能存在错误,因此无法正确设置"版本".但是有解决方法吗?在崩溃日志元数据中插入版本号(例如内部版本号或SCM版本号)的其他方法是什么?

iphone crash

25
推荐指数
1
解决办法
3390
查看次数

启动屏幕的行为与启动图像完全相同

为了让iPad Pro在发布时使用全分辨率,我们必须使用启动屏幕文件.

我之前从未使用过Launch Screen XIB/Storyboard,因为我的应用程序向后兼容iOS 7.通常我使用LaunchImage资产目录为每个设备维度和启动方向定义特定的静态图像.

现在我正在尝试定义一个类似于LaunchImage资产目录的启动屏幕文件,但我很难做到这一点.特别是:

1)我没有看到根据设备的确切大小选择不同的UIImage的好方法,例如向iPhone 4S用户显示一个图像,向iPhone 5用户显示另一个图像.

2)我没有办法为iPad Portrait和iPad Landscape视图选择不同的UIImage.大小类似乎认为iPad Portrait和iPad Landscape都是"Regular"宽度和"Regular"高度,因此任何出现在iPad Portrait上的UIImage也会出现在iPad Landscape中.

xcode interface-builder ios

25
推荐指数
1
解决办法
4862
查看次数

如何在svn中获取已更改文件的列表?

我只想要一个工作目录和存储库之间不同的文件列表.summary似乎只报告存储库之间的差异.

svn diff

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

如何让WVGA Android浏览器停止缩放图像?

我正在设计一个HTML页面,以便在Android浏览器中显示.考虑这个简单的示例页面:

<html>
<head><title>Simple!</title>
</head>
<body>
<p><img src="http://sstatic.net/so/img/logo.png"></p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

它在标准HVGA手机(320x480)上看起来很不错,但在HDPI WVGA尺寸(480x800或480x854)上,内置浏览器会自动缩放图像.它看起来很难看.

我已经读过,我应该可以使用此标记强制浏览器停止缩放页面:

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=0;" />
Run Code Online (Sandbox Code Playgroud)

...但所有这一切都是禁用用户缩放(缩放按钮消失); 它实际上并没有阻止浏览器缩放我的图像.调整比例因子(将它们全部设置为2.0或0.5)完全没有效果.

如何强制WVGA浏览器停止缩放图像?

browser android webkit highdpi

22
推荐指数
2
解决办法
2万
查看次数

没有为团队找到App Store Connect访问权限的帐户

将iOS应用程序提交到App Store时出现此错误.产品→存档,在Xcode 10中的管理器中单击"分发应用程序".

在此输入图像描述

没有为团队"[我的团队名称]"找到App Store Connect访问权限的帐户.App Store分发需要App Store Connect访问权限.

我已经以正确的用户帐户登录App Store Connect并验证我有管理员权限.

xcode

22
推荐指数
2
解决办法
5526
查看次数

com.jcraft.jsch.JSchException:验证取消

我正在尝试编写一个Ant脚本来通过端口隧道检索URL.

当我使用密码(名字xxxx出于隐私)时,它工作得很好:

<project default="main">
  <target name="main">
    <sshsession host="xxxx"
    username="xxxx"
    password="xxxx">
      <LocalTunnel lport="1080" rhost="xxxx" rport="80"/>
      <sequential>
        <get src="http://localhost:1080/xxxx" dest="/tmp/xxxx"/>
      </sequential>
    </sshsession>
  </target>
</project>
Run Code Online (Sandbox Code Playgroud)

但是当我使用密钥文件时它不起作用,如下所示:

    <sshsession host="xxxx"
    username="xxxx"
    keyfile="/Users/xxxx/.ssh/id_dsa"
    passphrase="xxxx">
      <LocalTunnel lport="1080" rhost="xxxx" rport="80"/>
      <sequential>
        <get src="http://localhost:1080/xxxx" dest="/tmp/xxxx"/>
      </sequential>
    </sshsession>
Run Code Online (Sandbox Code Playgroud)

我得到这个例外:

/tmp/build.xml:8: com.jcraft.jsch.JSchException: Auth cancel
    at com.jcraft.jsch.Session.connect(Session.java:451)
    at com.jcraft.jsch.Session.connect(Session.java:150)
    at org.apache.tools.ant.taskdefs.optional.ssh.SSHBase.openSession(SSHBase.java:223)
Run Code Online (Sandbox Code Playgroud)
  • 我确定我正在使用正确的密钥文件(我尝试使用错误的名称,这给出了合法的FileNotFoundException).
  • 我可以从命令行成功ssh而不会被提示输入密码.
  • 我确定我正在使用密钥文件的正确密码.

这个错误的原因是什么,我该怎么办呢?

ant ssh jsch

20
推荐指数
2
解决办法
7万
查看次数

Android试图使用回收的位图,而不是我的代码

我偶尔会从Market开发者控制台获得这个堆栈跟踪; 我找不到任何方法来重现错误.在应用程序首次加载时显示启动画面ImageView时会发生这种情况,但堆栈跟踪没有任何代码.我甚至认为我的活动甚至没有达到onCreate,尽管没有日志很难说.

实际上,我从未在代码中的任何地方使用过Bitmap.我对图像的唯一引用是在我的layout.xml中.

<ImageView android:id="@+id/splashScreen"
  android:layout_height="fill_parent"
  android:layout_width="fill_parent"
  android:src="@drawable/splashscreen"
  android:scaleType="fitXY"
/>
Run Code Online (Sandbox Code Playgroud)

我对这个ImageView做的唯一事情是设置它GONE在我完成启动时的可见性.

我能做些什么吗?

java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@4721ec18
at android.graphics.Canvas.throwIfRecycled(Canvas.java:955)
at android.graphics.Canvas.drawBitmap(Canvas.java:1044)
at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:323)
at android.widget.ImageView.onDraw(ImageView.java:923)
at android.view.View.draw(View.java:6761)
at android.view.ViewGroup.drawChild(ViewGroup.java:1663)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
at android.view.View.buildDrawingCache(View.java:6517)
at android.view.View.getDrawingCache(View.java:6305)
at android.view.ViewGroup.drawChild(ViewGroup.java:1588)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
at android.view.ViewGroup.drawChild(ViewGroup.java:1661)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1409)
at android.view.View.draw(View.java:6764)
at android.widget.FrameLayout.draw(FrameLayout.java:352)
at android.view.ViewGroup.drawChild(ViewGroup.java:1663)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
at android.view.ViewGroup.drawChild(ViewGroup.java:1661)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
at android.view.ViewGroup.drawChild(ViewGroup.java:1661)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
at android.view.View.draw(View.java:6764)
at android.widget.FrameLayout.draw(FrameLayout.java:352)
at android.view.ViewGroup.drawChild(ViewGroup.java:1663)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
at android.view.ViewGroup.drawChild(ViewGroup.java:1661)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
at …
Run Code Online (Sandbox Code Playgroud)

android bitmap

19
推荐指数
2
解决办法
1万
查看次数