小编Ete*_*ner的帖子

Eclipse保持构建工作空间...和构建工作空间...和构建工作空间

为什么Eclipse在构建Android项目时会陷入构建工作区的无限循环......以及(重新)构建工作区......以及(重新)构建工作区...

这是一个已知的错误?

摆脱这个循环的正确方法是什么?

笔记:

  1. 如果我取消选中Project > Build Automatically,它构建良好,甚至导出一个完美运行的签名版本APK.
  2. 此问题仅在我升级到最新的SDK r19后才开始.在此之前(SDK r11)我从未遇到过这个问题.
  3. 错误160868描述了这个问题.但从那以后它还没有被解决?
  4. 这里有一个类似的问题描述,但与上一个问题相似,它已经过时并且与Android开发没有直接关系.
  5. 问题27940建议处理一个名为const的错误,该错误BuildConfig.DEBUG可能相关也可能不相关.但它没有在r18中修复???
  6. 我在Android构建系统中找到了自动标记/日期戳的这个很棒的提示,但我没有使用任何类似的东西,除了仔细检查和验证构建器按照正确的顺序进行项目构建器列表顺序(相同的顺序)作为其他没有展示这种无限循环构建行为的项目).
  7. 我的预感告诉我可能有一个锁文件或标志以某种方式卡住(只读模式?),从而混淆了构建系统.知道布尔可能是什么以及在哪里找到它?
  8. 如果我首先在同一个工作区中打开另一个项目(没有出现这个问题),那么有这个问题的项目会奇迹般地停止无限重建.如果我颠倒首先打开项目的顺序,就不会发生这种情况.这是否意味着Eclipse/SDK/ADT构建系统中的gremlins?

请不要"盲目拍摄":只有当你亲身经历过这种惊人的现象(并解决它)或者能够指出一篇经历过这种神奇现象(并解决了它)的文章时,才回答这个问题.

eclipse debugging android adt

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

如何在Build期间自动修改Manifest中的versionName?

到目前为止,我一直专注于我的应用程序的编程,并且很少关注使构建过程更加智能.因此,我一直在手工操作("愚蠢的方式"),包括手动更新android:versionCodeandroid:versionNameAndroidManifest.xml.

我想现在自动(即在构建或出口时):

  1. git包含构建和版本代码的最新标记/分支中获取.
  2. 解析它们,以便我可以将它们分配给AndroidManifest.xml中的相应字段.
  3. 相应地修改AndroidManifest.xml.
  4. 继续正常的构建过程(Eclipse + ADT,没有任何Ant),好像我手工完成了1-2-3 ......

我找到了一些关于" 预构建步骤",构建器和build.xml的线索,但我不知道在哪里可以找到这些以及从哪里开始.

有关该主题的更多信息的任何提示或指示?(一步一步的教程是理想的)

更新1:我发现这个帖子暗示我:

  1. 右键单击项目, Properties > Builders
  2. 添加指向项目的Ant构建文件的构建器.
  3. 订购在Java构建器之前调用的构建器

很好,但这里是该项目的蚂蚁构建文件?我在哪里找到它?

更新2:显然,可以将整个项目导出到Ant文件中.但我不确定这是我想要的.预构建步骤必须始终包含Ant构建文件吗?

更新3:正在构建一个Ant文件,仅用于预构建步骤,正确的方法吗?

eclipse android adt

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

什么是AudioFlinger,为什么TONE_PROP_ACK失败?

在我的应用程序中,我发出以下声明:

toneGenerator.startTone(ToneGenerator.TONE_PROP_ACK, 600);
Run Code Online (Sandbox Code Playgroud)

这对于运行Android 2.3.3的便宜的LG LS670非常有效,但在我拥有的所有其他手机上都没有,从Android 2.2.1到Android 2.3.4.

所以我知道操作系统版本在这里没有发挥作用(我还在文档中验证了它自API 1以来一直受支持).

此外,Ringer音量和媒体音量都设置为最大值,toneGenerator初始化为:

toneGenerator = new ToneGenerator(ToneGenerator.TONE_DTMF_1, 100);
Run Code Online (Sandbox Code Playgroud)

我确认Settings.System.DTMF_TONE_WHEN_DIALING设置为1.

此不一致的行为(在不同的手机),百思不得其解,我检查了系统日志时发生这种情况,唯一的区别怀疑我能找到是谁的手机未能声音TONE_PROP_ACK在他们的日志这一行:

AudioFlinger    setParameters(): io 25, keyvalue routing=0, tid 155, calling tid 121
Run Code Online (Sandbox Code Playgroud)

AudioFlinger的目的是什么TONE_PROP_ACK?它与静音有什么联系?

任何想法如何修复我的代码,使得TONE_PROP_ACK总会响起,无论手机型号的?

android dtmf android-audiomanager audioflinger

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

如何重新抛出异常

在我的onCreate()中,我设置了一个UncaughtException处理程序,如下所示:

Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
    @Override
    public void uncaughtException(Thread thread, Throwable throwable) {
       Log.e(getMethodName(2), "uncaughtException", throwable);
       android.os.Process.killProcess(android.os.Process.myPid());
    }
});
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我想恢复系统向用户显示强制关闭对话框的默认行为.

如果我尝试KillProcess()throw throwable编译器替换调用,抱怨我需要用try/catch包围它.

如果我用try/catch包围它:

Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
    @Override
    public void uncaughtException(Thread thread, Throwable throwable) {
        try {
            Log.e(getMethodName(2), "uncaughtException", throwable);
            throw throwable;
        }
        catch (Exception e) {           
        }
        finally {               
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

编译器仍然抱怨throw throwable需要用try/catch包围.

我如何重新扔掉那个扔掉的?这样,除了信息量之外,Log.e()系统的行为与以前完全一样:因为我从未设置默认的UncaughtException处理程序.

java android rethrow uncaughtexceptionhandler

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

如何通过"由Vlingo支持的三星"以编程方式覆盖"Google Voice Search"?

有些设备(如三星Galaxy S3)预先安装了由Vlingo驱动的三星,而不是谷歌语音搜索.

在我的应用程序中,我想以编程方式覆盖要使用的语音识别引擎,以便我的应用程序始终使用Google语音搜索.

所以我的问题是:

  1. 有没有办法说明安装了哪些语音识别引擎?(如果是这样,怎么样?)
  2. 有没有办法告诉用户设置中选择了哪个语音识别引擎?(如果是这样,怎么样?)
  3. 是否有一种编程方式来覆盖用户的选择,以便我的应用程序始终调用Google语音搜索?(如果是这样,怎么样?)

帮助将不胜感激

android speech-recognition android-4.2-jelly-bean

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

线程退出与未捕获的异常:没有堆栈跟踪

我的应用程序导致一个强制关闭某个地方,但我没有在我的LogCat中获得通常(且信息量很大)堆栈跟踪的致命异常,我只收到以下4行:

06-27 07:08:54.546: D/dalvikvm(14351): GC_FOR_MALLOC freed 9923 objects / 657416 bytes in 21ms
06-27 07:08:54.769: W/dalvikvm(14351): threadid=20: thread exiting with uncaught exception (group=0x4001d7f0)
06-27 07:08:54.796: W/dalvikvm(14351): threadid=21: thread exiting with uncaught exception (group=0x4001d7f0)
06-27 07:08:54.796: I/Process(14351): Sending signal. PID: 14351 SIG: 9
Run Code Online (Sandbox Code Playgroud)

这是在DEBUG模式下,LogCat上没有应用过滤器!

  • 什么可能导致这种行为?
  • 有没有办法告诉导致此异常的原因?

更新:感谢下面的@assylias,我已经能够实现:

final UncaughtExceptionHandler subclass = Thread.currentThread().getUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
    @Override
    public void uncaughtException(Thread paramThread, Throwable paramThrowable) {
    Log.getStackTraceString(paramThrowable);

    subclass.uncaughtException(paramThread, paramThrowable);
    }
});
Run Code Online (Sandbox Code Playgroud)

这产生了这些增加的线:

06-27 08:24:47.105: D/dalvikvm(15475): GC_FOR_MALLOC freed 13865 objects / 1435952 bytes in …
Run Code Online (Sandbox Code Playgroud)

java stack-overflow android stack-trace uncaught-exception

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

`git reset HEAD file`也检查文件?

我错误地将一个目录添加到git中,当我按照这里的提示撤消添加时git reset HEAD <file>,我惊恐地发现其中一个文件的当前工作副本,其中有很多更改(工作!),还原回到以前的版本!

结果我失去了几个小时的工作......:(

我认为git reset HEAD <file>只有"从当前索引中删除它而不改变其他任何东西.我错过了什么?

git reset HEAD <file>应该还检查了从头部文件?

我怎样才能最大限度地减少将来再次出现这种情况的可能性?

git

9
推荐指数
1
解决办法
2万
查看次数

javac找不到符号构造函数Service

我正在借助这本Apache CXF Web服务开发书学习CXF,但是,本书的一个示例项目甚至无法编译!

有问题的代码是第3章contractfirst,它不是拼写错误的问题,因为我从书的支持站点下载逐字逐句使用的源代码.

3个编译错误实际上指向一个问题:

Chapter3\contractfirst\src\demo\order\OrderProcessService.java:52: cannot find symbol
symbol: constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[])
location: class javax.xml.ws.Service
super(WSDL_LOCATION, SERVICE, features);
^
Run Code Online (Sandbox Code Playgroud)

在OrderProcessService.java文件中.

初步重新搜索表明这可能是JAX-WS 2.2与2.1的问题,但我不知道如何使这个基于ANT的编译环境"支持"JAX-WS 2.2.

我尝试放入一个jaxws-api.jar,%JAVA_HOME%\lib\endorsed我尝试将该jar添加到项目的库列表中,但似乎没有任何帮助.

我没有使用Maven,因此我甚至无法将其列为依赖项,并希望这将被神奇地解决.

知道如何解决这个问题吗?这样我可以制作这个非常简单的项目吗?

java ant cxf jax-ws endorsed

8
推荐指数
1
解决办法
2万
查看次数

我需要在Eclipse项目中配​​置什么来修复错误的"导入XXX无法解析"

首先使用CXF教程遵循此合同.

一切进展顺利,包括从WSDL生成源代码,build-helper-maven-plugin但是当时间来"实现服务",RegistryResourceImpl.java即将生成的内容移动到正常的源文件夹时src/main/java,Eclipse开始抱怨某些符号(如界面RegistryResource)无法被识别.

意识到为普通src/main/java文件夹分配了不同的包名称,我只需在其所属RegistryResourceImpl.java的包的导入中添加RegistryResource.java:

import com.yourcompany.sample.ns.RegistryResource;
Run Code Online (Sandbox Code Playgroud)

但Eclipse目前的项目配置似乎是盲目的com.yourcompany.sample.ns,不知道在哪里找到它.

我尝试在Build Path中找到一个选项来指向生成的源,但没有尝试过我所帮助的.

我有一种感觉,我错过了一些非常微不足道的东西,但它是什么?

另外,不应该m2e(Eclipse的Maven插件)自动处理那种移动的实现文件?

更新(尝试@ Patrick建议的解决方案后):

  1. target/generated/src/main/java 不存在,但检查"创建新文件夹"框,我能够创建它.
  2. 但是,在pom.xml> Run As>上Maven clean,它被删除(因此需要在每次清理后重新创建???)
  3. 如果不在干净后重新创建,请执行pom.xml> Run As> Maven install,在完全不同的树下创建生成源:generated-sources/cxf/com/yourcompany/sample/ns.为什么???
  4. 然而,该RegistryResourceImpl.java模块仍然自动创建target/generated sources.在这一点上,我不再看到关于"未解决的包/进口/符号"的抱怨(奇怪).
  5. 但是......一旦它被移动到非目标文件夹/包,即src/main/java下的com.yourcompany.sample.ns,"import com.yourcompany.sample.ns.RegistryType;" 无法再解决!

另一方面,如果我尝试添加作为"源文件夹"的实际生成的路径generated-sources/cxf/com/yourcompany/sample/ns(而不是不相关/不存在target/generated/src/main/java,生成的树target被移动(删除)到下面/src/main/java.我不明白这种行为日食.

最后,即使我在这里做了Maven> Update Project建议,从而摆脱了"Maven …

java eclipse cxf m2e

8
推荐指数
2
解决办法
5152
查看次数

如何发布URL和Hashtags

下面这个例子在另一个线程,我能够鸣叫的网址:

String tweetUrl = "https://twitter.com/intent/tweet?text=PUT TEXT HERE &url="
                        + "https://www.google.com";
Uri uri = Uri.parse(tweetUrl);
startActivity(new Intent(Intent.ACTION_VIEW, uri));
Run Code Online (Sandbox Code Playgroud)

显示为:

在此处输入文字https://www.google.com

标签:

String tweetUrl = "https://twitter.com/intent/tweet?text=PUT TEXT HERE &url="
                        + "https://www.google.com &hashtags=android,twitter";
Uri uri = Uri.parse(tweetUrl);
startActivity(new Intent(Intent.ACTION_VIEW, uri));
Run Code Online (Sandbox Code Playgroud)

显示为:

把文字放在这里#android #twitter

但由于某些原因,我无法证明两者的URL,并在推特箱的井号标签.

我究竟做错了什么?

twitter android

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