小编zas*_*nyy的帖子

Google Play安装Referrer API与INSTALL_REFERRER广播

最近谷歌发布了Google Play Install Referrer API(公告).

与来自Google Play的INSTALL_REFERRER广播相比,除了引荐来源本身之外,它还提供了点击和安装时间等额外信息.

第一个问题:它是INSTALL_REFERRER广播的完全替代品吗?我们应该放弃广播接收器并开始使用新的API吗?

第二:在INSTALL_REFERRER广播中,有哪些特定情况下新API更可靠?

android google-play-services attribution

17
推荐指数
1
解决办法
4323
查看次数

如何在Jekyll中从JSON加载数据

在探索Jekyll进行网站生成时,我遇到了JSON数据加载问题.我已生成默认的Jekyll站点,将tracks.json文件添加到_data文件夹并将此代码添加到默认值index.html

<span>Tracks:</span>
<ul>
  {% for track in site.data.tracks.tracks %}
    <li>Title: {{ track.title }}</li>
  {% endfor %}    
</ul>
Run Code Online (Sandbox Code Playgroud)

结果我得到了这个代码:

<span>Tracks:</span>
<ul>
</ul>
Run Code Online (Sandbox Code Playgroud)

tracks.json 好像:

{
   "tracks":[
      {
         "id":"140",
         "title":"Android"
      },
      {
         "id":"142",
         "title":"GDG[x]"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

我使用正确的方式访问JSON字段吗?如果没有,那么正确的方法是什么?

更新: 问题已在Jekyll v.2.1.0中修复

json jekyll

13
推荐指数
2
解决办法
7891
查看次数

Android Jelly Bean上的Class.getAnnotations中不会忽略未知的注释

问题

根据JSR-175 java规范,如果注释在运行时不可用,则应该默默忽略它.但在Android API 15-16调用getDeclaredAnnotations()导致NoClassDefFoundError异常.在API 17+上,它无一例外地按预期工作.

请查看下面的示例项目了解详情

你会建议什么解决方法?你知道相关的Android bug报告吗?我找不到一个.

我们有一个带@Nullable注释的示例类:

public class SampleClass {
   @Nullable
   private String _content;
}
Run Code Online (Sandbox Code Playgroud)

@Nullable 在构建过程中可用,但是我们将它从apk中排除(切割方法计数),在我们这样做的例子中:

configurations {
   provided
}

android.applicationVariants.all {
   variant -> variant.javaCompile.classpath += configurations.provided
}

dependencies {
   provided group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.2'
}
Run Code Online (Sandbox Code Playgroud)

MainActivity我们尝试从该_content字段获取所有注释:

Class clazz = SampleClass.class;
Field[] fields = clazz.getDeclaredFields();
Field field = clazz.getDeclaredField("_content"); 
Annotation[] annotations = field.getDeclaredAnnotations(); // this line is throwing exception on …
Run Code Online (Sandbox Code Playgroud)

java android annotations

6
推荐指数
0
解决办法
316
查看次数

移动到Android Annotations v.2.7之后的java.lang.ArrayStoreException:sun.reflect.annotation.TypeNotPresentExceptionProxy

在转移到Android Annotations v.2.7后,我在eclipse中构建项目时遇到了问题,同时maven构建还可以.这是来自eclipse错误日志的堆栈跟踪:

Error
Mon Nov 05 15:49:49 GMT+02:00 2012
Errors running builder 'Java Builder' on project 'heroes'.

java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
    at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:653)
    at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:460)
    at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:286)
    at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:222)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
    at java.lang.Class.initAnnotationsIfNecessary(Class.java:3070)
    at java.lang.Class.getAnnotation(Class.java:3029)
    at javax.annotation.processing.AbstractProcessor.getSupportedSourceVersion(AbstractProcessor.java:103)
    at org.eclipse.jdt.internal.compiler.apt.dispatch.ProcessorInfo.<init>(ProcessorInfo.java:56)
    at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.discoverNextProcessor(IdeAnnotationProcessorManager.java:94)
    at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.round(RoundDispatcher.java:116)
    at org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:159)
    at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:134)
    at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:820)
    at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:434)
    at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:365)
    at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:178)
    at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:302)
    at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:60)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:254)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:178)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239)
    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351) …
Run Code Online (Sandbox Code Playgroud)

android android-annotations

5
推荐指数
1
解决办法
4万
查看次数