小编Flo*_*Flo的帖子

Android - 如何检索已注册地理围栏的列表

如何确定为应用程序注册的所有地理围栏?

在注册GeoFences后LocationClient.addGeofences(),我等待onAddGeofencesResuls()(返回SUCCESS)并尝试使用LocationClient.getTriggeringGeofences(intent)我用于注册的相同意图,但我只有null.

android android-intent geofencing

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

Gradle + Retrolambda:致命错误:无法在类路径或bootclasspath中找到包java.lang

我正在尝试将gradle-retrolambda集成到我的Android项目中(遵循指南),但是当我运行gradle构建时出现以下错误

:app:compileDebugJava
Fatal Error: Unable to find package java.lang in classpath or bootclasspath
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

org.gradle.api.tasks.TaskExecutionException:任务':app:compileDebugJava'的执行失败.在org.gradle上的org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)位于org.gradle.api.internal的org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)上的.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)位于org.gradle.api.internal.tasks.execution的org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42).tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) .skipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)....引起:org.gradle.api.internal.tasks .compile.CompilationFail edException:编译失败; 请参阅编译器错误输出以获取详细信 在Org.gradle.api.internal.tasks.compile.jdk6.Jdk6JavaCompiler.execute(Jdk6JavaCompiler.java:47)org.gradle.api.internal.tasks.compile.jdk6.Jdk6JavaCompiler.execute(Jdk6JavaCompiler.java:38)在org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJav ...

我认为这很奇怪,它使用jdk6.Jdk6JavaCompiler虽然我配置了Java7兼容性,请参阅下面的gradle构建文件.

Gradle版本信息:

------------------------------------------------------------
Gradle 1.12
------------------------------------------------------------

Build time:   2014-04-29 09:24:31 UTC 
Build number: none 
Revision:     a831fa866d46cbee94e61a09af15f9dd95987421

Groovy:       1.8.6
Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
Ivy:          2.2.0
JVM:          1.8.0_11 (Oracle Corporation 25.11-b03)
OS:           Linux 3.13.0-32-generic amd64
Run Code Online (Sandbox Code Playgroud)

Java环境路径:

JAVA_HOME=/usr/lib/jvm/java-8-oracle
JAVA8_HOME=/usr/lib/jvm/java-8-oracle
JAVA7_HOME=/usr/lib/jvm/java-7-oracle
Run Code Online (Sandbox Code Playgroud)

Gradle构建文件:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.+' …
Run Code Online (Sandbox Code Playgroud)

java android intellij-idea gradle java-8

18
推荐指数
1
解决办法
1811
查看次数

运行AspectJ会导致NoSuchMethodError:Aspect.aspectOf

我有一个非常简单的AspectJ方面(使用@AspectJ),它只打印出一条日志消息.我的目标是在我的Android应用程序中建议代码.现在,只要我在应用程序源代码中拥有aspect类本身,这个方面就可以完美地运行.一旦我将方面移动到另一个模块(java - > .jar或android lib - > .aar),我在应用程序中运行建议代码时会遇到以下运行时异常:

java.lang.NoSuchMethodError: com.xxx.xxx.TraceAspect.aspectOf
Run Code Online (Sandbox Code Playgroud)

基本上我的结构是这样的:

Root
 + app (com.android.application)
   - MainActivity (with annotation to be adviced)
 + library (android-library)
   - TraceAspect (aspect definition)
Run Code Online (Sandbox Code Playgroud)

从ajc编译器,我可以看到ajc编译器选择了我的类并正确地建议它们,所以我真的不知道为什么它可以工作,只要我在源代码中有@AspectJ类,但是一旦我移动就停止工作它是一个jar存档.

我正在使用gradle.我的应用程序的Buildscript非常简单.我按照http://fernandocejas.com/2014/08/03/aspect-oriented-programming-in-android/中的说明进行操作

import com.android.build.gradle.LibraryPlugin
import org.aspectj.bridge.IMessage
import org.aspectj.bridge.MessageHandler
import org.aspectj.tools.ajc.Main

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:0.12.+'
    classpath 'org.aspectj:aspectjtools:1.8.1'
  }
}

apply plugin: 'com.android.application'

repositories {
  mavenCentral()
}

dependencies {
  compile 'org.aspectj:aspectjrt:1.8.1'
  compile project (':library')
}


android.applicationVariants.all { variant ->
    AppPlugin plugin …
Run Code Online (Sandbox Code Playgroud)

java android aspectj gradle android-gradle-plugin

8
推荐指数
3
解决办法
8667
查看次数

Android - 为什么要使用挂起意图进行地理围栏

我刚刚完成了Android上的地理围栏教程(http://developer.android.com/training/location/geofencing.html),我想知道为什么地理围栏的'回调'是通过挂起的意图而不是简单的回调接口完成的.

如果在活动中实现,通常会断开位置客户端的连接onPause(),因此在应用程序暂停/被销毁后,以前添加的地理围栏也不会被跟踪,那么为什么会有未决的意图呢?或者我错了?

android geofencing android-pendingintent

7
推荐指数
1
解决办法
4200
查看次数

嵌入式地图上的HQL选择

我想在我的模型中使用(可搜索)本地化,我想出了以下模型:

@Entity
public class Category {
    ...
    @ElementCollection
    //key = language code (e.g. 'en') and value = localized label
    private Map<String, String> name;
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想做的不是在特定的本地化中查询包含casesensitive针的类别(例如,英文名称为'%abc%')

我试过类似的东西

from Category where name.key = :locale and lower(name.value) like :text
Run Code Online (Sandbox Code Playgroud)

但失败了,无法解除引用标量集合元素异常.

现在hibernate文档说,我必须使用elements()和indices()来表示值和键.对于密钥,这将很容易使用:locale in indices(name),但我怎么能以casesensitive方式匹配此区域设置的一部分值?

为了防止hql与我的模型不可行,我还能如何模拟可搜索的本地化?

hibernate localization hql

6
推荐指数
1
解决办法
2443
查看次数

使用IntelliJ/AndroidStudio调试基于gradle的单元测试

我正在使用robolectric gradle插件为Android编写单元测试.除了能够使用Android Studio正确调试我的测试之外,到目前为止一切正常.

我做了一些调查(http://forums.gradle.org/gradle/topics/how_do_you_attach_a_debugger_to_gradle_so_that_i_can_debug_it_running_a_task),我最终得到的结果是:

  1. 从控制台启动可调试的gradle配置 gradlew -DtestDebug.debug=true app:clean app:testDebug 这将停止gradle构建并在5005等待监听器

  2. 在Android Studio中创建"远程"启动配置,该配置将附加在端口5005上

  3. 在Debug-mode中从Android Studio启动该配置

每次都要完成步骤1 + 3,我想调试我的测试.这很烦人.我想有办法,我可以直接从intelliJ启动gradle构建,它会自动附加调试器.我怎样才能做到这一点?

信息:(当然,理想的解决方案是我可以通过IntelliJ的JUnit配置直接启动单元测试,因为这样可以给我IDE支持,整齐地显示失败和通过测试等等.但是我遇到了问题. JUnit构建时没有找到Manifest文件等,所以我暂时放弃了它.)

**Gradle构建文件**

apply plugin: 'com.android.application'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.robolectric:robolectric-gradle-plugin:0.12.+'
    }
}

apply plugin: 'robolectric'

android {
    compileSdkVersion 20
    buildToolsVersion "20.0.0"

    packagingOptions {
        exclude 'LICENSE.txt'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE'
    }

    defaultConfig {
        applicationId "test.fs.test"
        minSdkVersion 14
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false …
Run Code Online (Sandbox Code Playgroud)

debugging android intellij-idea gradle android-gradle-plugin

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

Thread.setDefaultUncaughtExceptionHandler中的崩溃应用程序

在记录我自己的错误后,我想故意崩溃我的应用程序.Handler在Application.onCreate()中注册:

// set global exception handler
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, final Throwable ex) {
  // unregister
  Thread.setDefaultUncaughtExceptionHandler(null);

  // do report ...

  // crash app -does not work, app is frozen
  if (ex instanceof RuntimeException)
    throw (RuntimeException) ex;
  throw new RuntimeException("Re-throw", ex);
}
Run Code Online (Sandbox Code Playgroud)

但是,我的应用程序冻结而不是崩溃对话框.如果我没有注册处理程序,我怎么能崩溃应用程序呢?

java crash error-handling android

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

如果await永远不会返回怎么办?

在ECMAScript中我使用的是CancelablePromise(https://github.com/alkemics/CancelablePromise),它基本上只是一个带有.cancel()函数的Promise .无论何时.cancel()调用,都会提供回调.then()并且.catch()不执行回调.

我想知道如果我等待取消的承诺会发生什么:

CancelablePromise promise = new CancelablePromise((resolve, reject) => resolve(1));
const promise2 = promise.then(x => x + 1);
promise.cancel();
console.log(await promise2);
Run Code Online (Sandbox Code Playgroud)

因此,此代码按预期工作,控制台上没有任何内容.但是,我想知道这是否会创建任何无法由GC收集的悬挂线程/引用,或者这是非常安全且有效的?

javascript async-await ecmascript-6

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

Android-确定InputMethod(自定义键盘)的调用应用程序

我正在按照此指南实施自定义键盘:http : //developer.android.com/guide/topics/text/creating-input-method.html

有没有一种方法可以从我的KeyboardService内部“连接”到哪个应用程序(=程序包ID)(哪个应用程序接收我发送的输入事件)?

keyboard android android-service android-input-method android-service-binding

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