我相信计算机是做重复性任务的最佳选择.我当然不是,我要么忘记,要么(大多数时候)不以一致的方式做事 - 这不是我想要的.
我可能要做的一件事是在发布新版本的Android应用时忘记清单中的版本信息.在过去,我使用过具有自动版本编号功能的配置构建系统,并且我已经习惯了(或者我很懒).
我发现这个Stackoverflow帖子在提出解决方案时非常有用,但是我花了一段时间对它进行微调,以便它按照我想要的方式工作.早期的尝试有时会导致继续建设,这是一个痛苦.所以我想我会在这里发布我的解决方案,希望别人会发现它有用.
好的,我在新的Android构建系统上观看了Xavier Ducrohet的YouTube视频.我甚至转而使用Android Studio并对此感到满意.现在我需要自定义构建规则以按照我想要的方式执行操作,其中一个是自动设置清单文件中的codeVersion和codeName.
Xavier在他的一张幻灯片中展示了如何做到这一点:
def getVersionCode() {
def code = ...
return code
}
android {
defaultConfig {
versionCode getVersionCode()
}
}
Run Code Online (Sandbox Code Playgroud)
那么有些人可以如此友善地指出我有充足的资源来填补空白点吗?
更具体一点,我想运行一个类似于git describe --dirty | sed -e 's/^v//'确定versionName和git tag | grep -c ^v获取的脚本versionCode.
谢谢
更新
我试过以下gradle.build脚本但没有成功.它构建得很好,但我安装的应用程序的App Info页面中的版本名称不会更改.
task getVersionName(type:Exec) {
commandLine '../scripts/version-name.sh'
//store the output instead of printing to the console:
standardOutput = new ByteArrayOutputStream()
//extension method stopTomcat.output() can be used to …Run Code Online (Sandbox Code Playgroud) 我正在开发一个具有多个组件的应用程序,每个组件都是一个单独的 Android 应用程序。“核心”应用程序将使用内容提供程序提供对数据库的访问,阅读权限文档“签名”保护是我想要的方式。
我为我的权限定义了一个组,主要是为了我的权限可以很好地显示在应用信息的“权限”部分中我自己的图标上。与android:protectionLevel="normal"他们出现就好了。但是当我使用android:protectionLevel="signature"它们时它们消失了。
<permission-group
android:name="com.example.permissions.GROUP"
android:label="@string/lblGroup"
android:description="@string/descGroup"
android:icon="@drawable/ic_menu_permissions_group" />
<permission
android:name="com.example.permission.CONFIG_READ"
android:permissionGroup="com.example.permissions.GROUP"
android:protectionLevel="signature"
android:label="@string/lblConfigRead"
android:description="@string/descConfigRead" />
<permission
android:name="com.example.permission.CONFIG_WRITE"
android:permissionGroup="com.example.permissions.GROUP"
android:protectionLevel="signature"
android:label="@string/lblConfigWrite"
android:description="@string/descConfigWrite" />
Run Code Online (Sandbox Code Playgroud)
鉴于我目前正在开发,因此使用开发人员密钥,是否还有其他一些需要我跳过才能使“签名”保护级别适用于开发人员的问题?
一如既往地感谢您的帮助
史蒂夫
我有一个抽象类,它提供了一些继承的EJB实体的一些常用功能.其中一个是时间戳列.
public abstract class AbstractEntity {
...
private long lastModified;
...
@Column
public long getLastModified() {
return lastModified;
}
public void setLastModified(long ts) {
lastModified = ts;
}
}
Run Code Online (Sandbox Code Playgroud)
和
@Table
@Entity
public class MyEntity extends AbstractEntity {
...
private Long key;
private String value;
...
@Id
public Long getKey() {
return key;
}
public void setKey(Long k) {
key = k;
}
@Column
public String getValue() {
return value;
}
public void setValue(String txt) {
value = txt;
setLastModified(System.currentTimeMillis()); …Run Code Online (Sandbox Code Playgroud) 我不确定我是否在 Android 中发现了错误,或者我的代码中是否存在错误。我认为这可能是我读过的硬件加速错误的另一种(或新的)表现形式。我在 android 4.2 上运行,但android:hardwareAccelerated="true"在清单文件中设置并不能解决问题。
问题存在于自定义视图中。它有一个复杂的显示,所以Path我不是单独指定所有字段,而是解析一个 SVG 文件并根据<path>元素的数据规范构建路径。SGV 解析器还提取了 SVG 绘图区的宽度和高度,以便View生成在 SVG 空间和空间之间转换的矩阵:
Matrix t = new Matrix();
float scale = Math.min(viewWidth / svgWidth, viewHeight / svgHeight);
t.setScale(scale, scale);
Run Code Online (Sandbox Code Playgroud)
此变换应用于onDraw(Canvas)方法中的画布。问题是有些路径渲染正常,有些则没有。沿着路径渲染的文本也是如此。
我想我已经找到了渲染和未渲染之间的区别:直线。被渲染的文本在一条对角线上,而不是在一条完全水平的线上。将文本路径从水平方向移开会导致文本被渲染。将水平线更改为三次曲线也是如此,控制点位于线本身上 - 因此它呈现为一条直线;从现在开始我将称之为直线曲线。
如果边界框(翻译前或翻译后)的体积为零(boundingBox.left - boundingBox.right == 0或boundingBox.top - boundingBox.bottom == 0),Android 加速代码中是否存在过滤路径的错误?也许!但是我还有其他不渲染路径的情况:路径仅由直线组成。即使这些路径的边界框有体积,它们也不会渲染。将路径元素之一从直线更改为直线,整个路径渲染得很好。
当然,从性能的角度来看,我不想将我的一些线条渲染为直线,我假设线条绘制代码比三次曲线代码更快。所以我发这个是想问问其他人是否遇到过这个问题,是否有解决办法。
一如既往地非常感谢。
我有一个使用鉴别器列的JPA实体.但我需要访问鉴别器的值作为实体的一个字段.我怎么样 如果我创建一个与鉴别器列匹配的方法,我在部署时会收到以下错误:
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: com.example.PortEntity column: type (should be mapped with insert="false" update="false")
Run Code Online (Sandbox Code Playgroud)
实体定义:
@Entity(name="Port")
@DiscriminatorColumn(name="type",
discriminatorType=DiscriminatorType.STRING,
length=10)
@DiscriminatorValue(value="port")
@Table(name="vPorts")
@XmlRootElement(name="port")
public class PortEntity {
...
@Column(name="type", length=20, insert=false, update="false")
@XmlAttribute(name="type")
public String getType() { ... }
public void setType(String newType) {... }
...
@Entity(name="SeaPort")
@DiscriminatorValue(value="seaport")
@XmlRootElement(name="seaport")
public static class Sea
extends PortEntity { ... }
@Entity(name="AirPort")
@DiscriminatorValue(value="seaport")
@XmlRootElement(name="seaport")
public static class Air
extends PortEntity { ... }
}
Run Code Online (Sandbox Code Playgroud) android ×3
java-ee ×2
build.gradle ×1
drawing ×1
ejb ×1
git ×1
gradle ×1
jboss7.x ×1
jpa ×1
versioning ×1