我在Android Studio上有一个git项目,在BitBucket上有一个遥控器,我将其更改为使用SSH而不是HTTPS.我可以使用Atlassian的SourceTree使一切工作,但是每次我尝试推动项目时,它都会在Android Studio中使用
推送失败:致命:无法从远程存储库读取.
有没有人知道可能发生的事情?
我正在尝试添加最新版本的butterknife,我从gradle中得到了这个错误:
错误:(31,0)未找到Gradle DSL方法:'apt()'可能的原因:
项目"MyProject"可能正在使用不包含该方法的Gradle版本.Gradle设置 构建文件可能缺少Gradle插件.应用Gradle插件
我的gradle在哪里mobile build.gradle:
plugins {
id "net.ltgt.apt" version "0.6"
}
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.mynamspace.myproject"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
wearApp project(':wear')
testCompile 'junit:junit:4.12'
compile 'com.jakewharton:butterknife:8.0.0'
apt 'com.jakewharton:butterknife-compiler:8.0.0'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.google.android.gms:play-services:8.4.0'
compile 'com.android.support:design:23.3.0'
compile 'com.android.support:support-v4:23.3.0'
compile 'com.android.support:recyclerview-v7:23.3.0'
}
Run Code Online (Sandbox Code Playgroud)
gradle-apt-plugin有什么问题?
我想将a转换ZonedDateTime为a String格式("dd/MM/yyyy - hh:mm").我知道这在Joda-Time其他类型中是可能的,只是使用它们toString("dd/MM/yyyy - hh:mm")....但这不起作用ZonedDateTime.toString().
ZonedDateTime为String?编辑:
我试图在另一个时区打印时间,结果似乎总是一样:
ZonedDateTime date = ZonedDateTime.now();
ZoneId la = ZoneId.of("America/Los_Angeles");
ZonedDateTime date2 = date.of(date.toLocalDateTime(), la);
// 24/02/2017 - 04:53
System.out.println(DateTimeFormatter.ofPattern("dd/MM/yyyy - hh:mm").format(date));
// same result as the previous one
// 24/02/2017 - 04:53
System.out.println(DateTimeFormatter.ofPattern("dd/MM/yyyy - hh:mm").format(date2));
Run Code Online (Sandbox Code Playgroud)
而且我和洛杉矶不在同一时区.
编辑2:
找到了如何更改时区:
// Change this:
ZonedDateTime date2 = date.of(date.toLocalDateTime(), la); // incorrect!
// To this:
ZonedDateTime date2 = date.withZoneSameInstant(la);
Run Code Online (Sandbox Code Playgroud) 在搜索 Flutter 的依赖注入解决方案时,我发现了两个很棒的库:provider和get_it.
据我所知provider,它有更多的样板文件,但它非常适合 Flutter ,一旦注入的值发生变化,就Consumer可以重建Widget树的一部分。
get_it 另一方面更直接,更容易使用,并且不依赖于 Flutter,因此可以与任何 Dart 代码一起使用。
它们之间还有什么区别和限制吗?我知道这有点自以为是,但 Flutter 太新了,所以最好公开注册好处、副作用和陷阱。
dependency-injection service-locator flutter flutter-provider
我有一个User带有字段的类id,所以我想用 Room 运行以下查询:
@Query("SELECT * FROM ticket where user_id = :user.id")
LiveData<Ticket> loadFromUser(User user);
Run Code Online (Sandbox Code Playgroud)
但是我在 Android Studio on 上收到错误标记,user.id并且我在网上找到的所有示例仅使用该@Query方法的直接参数,通常是 aString或 an int。
是否可以在 Room 中使用对象的字段@Query?如果是肯定的,那么引用它的正确方法是什么。
读了一些文章后,像这样关于Qt信号插槽通信还是有关于排队的连接问题.
如果我有一些线程一直向对方发送信号,并且假设一个thread_slow在它的事件循环中运行一个慢速方法而另一个thread_fast运行一个快速的方法发送多个信号,而另一个线程仍在运行它的慢速方法...... ..当thread_slow返回到事件循环的慢速方法时,它会处理之前发送的所有信号thread_fast还是最后一个发送的所有信号(所有信号都是相同的类型)?
如果它将处理所有信号,是否有办法使thread_slow 唯一的过程成为最后一个?(考虑到多线程应用程序中的"最后一个"可能是模糊的,让我们考虑线程要求最后一个信号之前的最后一个信号,为了简单起见,所以在线程查找最后一个时发送的新信号可能会丢失).
(我问这个是因为我有多个线程从多个线程接收数据,我不希望它们处理旧数据,只是最后一个发送的数据)
我已经进行了一些测试,看来Qt将处理所有信号.我做了一个线程:
while(true)
{
QThread::msleep(500);
emit testQueue(test);
test++;
}
Run Code Online (Sandbox Code Playgroud)
另一个插槽将执行:
void test::testQueue(int test)
{
test.store(private_test.load() + test);
emit testText(QString("Test Queue: ") + QString::number(private_test.load()));
}
Run Code Online (Sandbox Code Playgroud)
并且线程将运行:
while(true)
{
QThread::msleep(3000);
QCoreApplication::processEvents();
private_test.store(private_test.load() + 1000);
}
Run Code Online (Sandbox Code Playgroud)
我每隔500毫秒从一个线程向另一个线程发送一个信号,另一个线程休眠3000毫秒(3秒)然后唤醒并将内部变量递增100.每次执行一个插槽时它会发出一个文本收到的值+内部变量.我得到的结果是,每次 QCoreApplication::processEvents();调用,所有信号都被执行....(我编辑了这部分是因为我在之前的代码中发现了一个错误)
我试图将图像放入一个ImageButton用于测试的内容,但ImageButton行为的方式并不像预期的那样.
最初,我制作了一个988x89像素的PNG图像并将其放置ImageButton在一个7英寸1024x600像素模拟屏幕内.这ImageButton是988dp x 89dp,我知道dp和像素不一样,但是对于这个分辨率我预计图像会合理地缩放以占据大部分像素ImageButton.此外,我改为px而不是dp进行测试,它没有任何区别.
但相反,ImageButton使其内部的图像非常小(蓝线是ImageButton边界,绿线是中心对齐指示).

所以问题#1:为什么这样的ImageButton图像如此小,当它可以填满大部分屏幕时,即使ImageButton尺寸非常宽?
所以为了克服这个问题,我选择adjustViewBounds哪个没有任何区别,这带来了问题#2:为什么?调整视图边界是不是应该调整视图边界?
到目前为止的代码是:
<ImageButton
android:layout_width="988dp"
android:layout_height="89dp"
android:id="@+id/ibTest"
android:src="@drawable/image_top_test"
android:layout_centerHorizontal="true"
android:adjustViewBounds="true"
android:cropToPadding="false"
android:layout_below="@+id/hlTopBar"
android:background="#00000000" />
Run Code Online (Sandbox Code Playgroud)
所以后来我改为scaleType,fitCenter图像变成了:

这对我来说也很奇怪,因为它ImageButton具有与图像相同的纵横比,所以我希望它适合100%,但它不合适(图像两侧的宽度存在间隙).
所以后来我换scaleType了fitXY,得到了我的最终结果:

毕竟这似乎是预期的图像(将fitXY图像与fitCenterPhotoshop中的fitCenter图像进行比较显示图像略呈椭圆形,但此处无法显示,这是预期的,因为宽度与图像不匹配高度确实).
所以我的一般问题是(#3):什么是在Android中拟合图像的正确方法,并期望它在屏幕上具有常规大小,为什么缩放如此混乱,我做错了吗?
我知道有屏幕尺寸问题和dp等,但缩放不是以受控方式运行,fitCenter使图像椭圆形,并且fitXY太依赖于我在XY上设置正确的图像比率,所以我想知道我是不是做错了什么以及它应该是正确的方式.
最终的XML代码:
<ImageButton
android:layout_width="988dp"
android:layout_height="89dp"
android:id="@+id/ibTest" …Run Code Online (Sandbox Code Playgroud) 众所周知,C#string非常不安全,它没有固定在RAM中,垃圾收集器可以移动它,复制它,在RAM中留下多个痕迹,RAM可以交换并作为要读取的文件提供,没有提到其他几个已知的事实.
为了缓解这一点,微软想出了这个SecureString.问题是:使用它的正确方法是什么?
我问这个,因为迟早你将不得不提取内部字符串.是的,SecureString确实允许我们char一次写一个并给我们一些其他的小用法,同时隐藏它的秘密,但有时我们需要整个字符串或类似的东西.到目前为止,我看到的所有实现string最终都使用常规,使用SecureString我认为(或希望)的提取和解密内容在某些情况下可以避免,即使它可能涉及一些复杂的代码来绕过.NET string.
在我的例子中,我使用一个名为BCrypt的密码哈希库.它使用常规string来计算哈希值,我认为这远非理想.我没有找到任何可以SecureString直接接受的库,所以我没有太多的选择但是使用它.
目前我运行的代码如下:
SecureString password; // This usually comes from a PasswordBox Property
IntPtr passwordBSTR = Marshal.SecureStringToBSTR(password);
string insecurePassword = Marshal.PtrToStringBSTR(passwordBSTR);
Marshal.ZeroFreeBSTR(passwordBSTR);
passwordBSTR = default(IntPtr);
password.Clear();
// Use the insecurePassword....usually as:
bool result = BCrypt.Net.BCrypt.Verify(insecurePassword, user.Password); // This hashes the provided password and compares it with another BCrypt hash.
insecureString = string.Empty; // hoping for the GC …Run Code Online (Sandbox Code Playgroud) 我是 Dart 的新手,我可以看到 Dart 有num哪个是intand的超类double(并且只有这两个,因为子类化num到其他任何东西都是编译时错误)。
到目前为止,我看不到使用num代替intor 的任何好处double,是否有num更好甚至推荐的情况?还是只是为了避免考虑数字的类型,以便编译器为我们决定数字是 anint还是 a double?