是否有其他人UIImagePickerController在iOS 8中遇到问题?下面的方法在iPad上的iOS 7中运行得非常好,但是当我尝试呈现选择器(最后一行)时,我在XCode 6(Beta 3或4)中运行时会出现以下错误.如果重要,那么sourceType的选择来自于在同一个地方呈现的alertView.
Warning: Attempt to present <UIImagePickerController: 0x7c0ae400> on <CAGUCreateContactViewController: 0x7bf61a00> which is already presenting (null)
Run Code Online (Sandbox Code Playgroud)
打开imagePicker的方法.
- (void)openPhotoPicker:(UIImagePickerControllerSourceType)sourceType
{
if ([UIImagePickerController isSourceTypeAvailable:sourceType]) {
NSArray *availableMediaTypes = [UIImagePickerController availableMediaTypesForSourceType:sourceType];
if ([availableMediaTypes containsObject:(NSString *)kUTTypeImage]) {
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.modalPresentationStyle = UIModalPresentationFullScreen;
imagePickerController.sourceType = sourceType;
imagePickerController.mediaTypes = @[(NSString *)kUTTypeImage];
imagePickerController.delegate = self;
self.imagePickerController = imagePickerController;
if (sourceType == UIImagePickerControllerSourceTypeCamera) {
[self presentViewController:self.imagePickerController animated:YES completion:nil];
} else {
if (self.popoverVC) {
[self.popoverVC dismissPopoverAnimated:YES];
self.popoverVC = …Run Code Online (Sandbox Code Playgroud) 我正在从适配器中的演示者请求图像:
@Override
public void onBindViewHolder(SiteAdapter.ViewHolder holder, int position)
{
Site site = sites.get(position);
holder.siteName.setText(site.getName());
requestHolderLogo(holder, site.getLinks().getLogoUrl());
}
private void requestHolderLogo(final ViewHolder holder, final String logoUrl)
{
compositeSubscription.add(
presenter.bitmap(logoUrl)
.subscribe(
bitmap -> {
holder.siteLogo.setImageBitmap(bitmap);
holder.siteLogo.setVisibility(View.VISIBLE);
},
error -> {
holder.siteName.setVisibility(View.VISIBLE);
})
);
}
Run Code Online (Sandbox Code Playgroud)
我应该在ViewHolder重新使用时取消订阅.这很容易.
但是当视图被销毁时如何停止所有订阅?我也应该使演示者引用无效以避免内存泄漏
我在输出中看到下一个:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':test'.
> superClassName is empty!
Run Code Online (Sandbox Code Playgroud)
如果有人知道如何解决它,我感激不尽.
我已经看了http://issues.gradle.org/browse/GRADLE-1682.但任何解决方案都无济于事
创建Gist以获取更多信息:https: //gist.github.com/emartynov/c88194c702b77f42a7c0
这是stacktrace:
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':test'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.
java:72)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:49
)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskEx
ecuter.java:34)
at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter$1.run(CacheLockHandlingTaskExecuter.jav
a:34)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:179)
at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:232)
at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStor
e.java:142)
at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskA
rtifactStateCacheAccess.java:83)
at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter.execute(CacheLockHandlingTaskExecuter.j
ava:32)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExec
uter.java:41)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.j
ava:51)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.j
ava:42) …Run Code Online (Sandbox Code Playgroud) 我决定为android maven插件做贡献.
他们使用非常具体的代码样式格式.我需要一些时间来修改IDEA代码格式规则以满足他们的要求.
幸运的是有checkstyle配置.我已经为IDEA安装了check-style插件,并立即看到我当前格式错误的位置.
不幸的是,我没有找到将checkstyle配置导入IDEA格式规则的方法.
如果有可能,我很感兴趣.
我正在使用Jake的Android单元测试插件进行gradle:https://github.com/JakeWharton/gradle-android-test-plugin
我的build.gradle看起来像这样:
dependencies {
// analytics
compile('com.crittercism:crittercism-android:3.0.11')
// retrofit
compile('com.squareup.retrofit:retrofit:1.2.2')
compile('com.squareup.okhttp:okhttp:1.2.1')
// dagger
compile('com.squareup.dagger:dagger:1.1.0')
compile('com.squareup.dagger:dagger-compiler:1.1.0')
// compatibility
compile('android.compatibility:android-support:v4-r13')
compile('com.actionbarsherlock:actionbarsherlock:4.4.0@aar')
// Picasso
compile('com.squareup.picasso:picasso:2.1.1')
// Otto
compile('com.squareup:otto:1.3.4')
// Tests
testCompile 'junit:junit:4.10'
testCompile 'org.robolectric:robolectric:2.2'
testCompile 'org.powermock:powermock-api-mockito:1.5.1'
testCompile 'org.easytesting:fest-assert-core:2.0M10'
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法运行所有或特定的单元测试表单Android Studio.我收到错误:
Exception in thread "main" java.lang.NoClassDefFoundError: junit/textui/ResultPrinter
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:171)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113)
Caused by: java.lang.ClassNotFoundException: junit.textui.ResultPrinter
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 3 more
Run Code Online (Sandbox Code Playgroud)
这是正确的,因为运行命令行不包括我的JUnit依赖项:
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -ea -Didea.launcher.port=7533 "-Didea.launcher.bin.path=/Applications/Android Studio.app/bin" …Run Code Online (Sandbox Code Playgroud) 我们没有使用任何本机代码,我们的应用程序也没有任何本机传递依赖.
在最近发布之后(我们更新了几个依赖项并添加新内容),我们开始在Google Play中看到这样的崩溃:
native: pc 000000000006a548 /system/lib64/libc.so (tgkill+8)
native: pc 0000000000067cd8 /system/lib64/libc.so (pthread_kill+68)
native: pc 0000000000024b78 /system/lib64/libc.so (raise+28)
native: pc 000000000001f318 /system/lib64/libc.so (abort+60)
native: pc 000000000043471c /system/lib64/libart.so (_ZN3art7Runtime5AbortEv+324)
native: pc 0000000000137224 /system/lib64/libart.so (_ZN3art10LogMessageD2Ev+3136)
native: pc 000000000030d988 /system/lib64/libart.so (_ZN3art9JavaVMExt8JniAbortEPKcS2_+2080)
native: pc 000000000030df24 /system/lib64/libart.so (_ZN3art9JavaVMExt9JniAbortFEPKcS2_z+224)
native: pc 000000000034ec64 /system/lib64/libart.so (_ZN3art3JNI15CallVoidMethodVEP7_JNIEnvP8_jobjectP10_jmethodIDSt9__va_list+616)
native: pc 0000000000099094 /system/lib64/libandroid_runtime.so
native: pc 0000000002a71ac4 /system/framework/arm64/boot.oat
Run Code Online (Sandbox Code Playgroud)
我认为这只是Android本身,但可能是什么原因?任何帮助表示赞赏.
这个电话有什么意义吗?它是虚拟机的一些调用吗?
_ZN3art3JNI15CallVoidMethodVEP7_JNIEnvP8_jobjectP10_jmethodIDSt9__va_list
Run Code Online (Sandbox Code Playgroud) 服务器返回JSON的这一部分:
{"condition": {
"or": [
{
"and": [
{
"operand": "a",
"operator": "==",
"value": "true"
},
{
"not": {
"operand": "b",
"operator": "==",
"value": "true"
}
}
]
},
{
"and": [
{
"operand": "b",
"operator": "==",
"value": "true"
},
{
"not": {
"operand": "a",
"operator": "==",
"value": "true"
}
}
]
}
]
}}
Run Code Online (Sandbox Code Playgroud)
我写了下一个类层次结构:
public interface Condition {}
public class Expression implements Condition {
public Expression(String operator, String operand, String value) {
}
}
public class Not implements …Run Code Online (Sandbox Code Playgroud) 我正在为开源库做贡献并得到lint错误"不要将位置视为已修复;只能立即使用并调用holder.getAdapterPosition()以便稍后查找"以获取此代码:
@Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
mAdapter.onBindViewHolder(holder, position);
if (!isFirstOnly || position > mLastPosition) {
for (Animator anim : getAnimators(holder.itemView)) {
anim.setDuration(mDuration).start();
anim.setInterpolator(mInterpolator);
}
mLastPosition = position;
} else {
ViewHelper.clear(holder.itemView);
}
}
Run Code Online (Sandbox Code Playgroud)
我已经检查过这是因为保存位置以备将来使用.图书馆创建者为什么需要这种逻辑是一个问题.但是当我将位置的使用更改为用法时,问题就消失了holder.getAdapterPosition():
@Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
mAdapter.onBindViewHolder(holder, position);
if (!isFirstOnly || holder.getAdapterPosition() > mLastPosition) {
for (Animator anim : getAnimators(holder.itemView)) {
anim.setDuration(mDuration).start();
anim.setInterpolator(mInterpolator);
}
mLastPosition = holder.getAdapterPosition();
} else {
ViewHelper.clear(holder.itemView);
}
}
Run Code Online (Sandbox Code Playgroud)
我认为从概念上讲它并没有太大变化,但现在皮棉很满意.为什么?
如果有人知道如何在IDEA的项目属性中处理这个pom,我很感兴趣:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.3</source>
<target>1.3</target>
<testSource>1.5</testSource>
<testTarget>1.5</testTarget>
</configuration>
<version>3.0</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我应该设置项目级别1.3和模块级别1.5还是明智的?
在IDEA重新加载maven项目的任何时候,它都会设置语言级别,因为它从maven到1.3并且总是抱怨测试类.
但这将作为错误报告给JetBrains.
我在JBoss服务器上遇到了一个奇怪的问题,其中两个类正在生成相同的问题hashCode().
Class<?> cl1 = Class.forName("fqn.Class1");
Class<?> cl2 = Class.forName("fqn.Class2");
out.println(cl1.getCanonicalName());
out.println(cl2.getCanonicalName());
out.println(cl1.hashCode());
out.println(cl2.hashCode());
out.println(System.identityHashCode(cl1));
out.println(System.identityHashCode(cl2));
out.println(cl1 == cl2);
out.println(cl1.equals(cl2));
out.println(cl1.getClassLoader().equals(cl2.getClassLoader()));
Run Code Online (Sandbox Code Playgroud)
生产:
fnq.Class1
fnq.Class2
494722
494722
494722
494722
false
false
true
Run Code Online (Sandbox Code Playgroud)
我通常不会关心,但我们正在使用一个框架,该框架使用由类中的哈希码和属性名称组成的密钥来缓存setter.这对于缓存来说是一个糟糕的设计,但目前我无法控制(最新的Struts 2.3.24中的OGNL 3.0.6,请参阅源代码.较新的OGNL修复了这个问题,但它目前不会在Struts中使用2.5,目前在测试中.)
是什么让这个问题对我来说有点奇怪
我读到Hotspot中的RNG哈希码生成器("0"策略)如果有赛车线程可以产生重复,但我无法想象类加载会触发该行为.
Hotspot在创建Class实例时是否使用特殊的哈希码处理?