Articles of Android

反向代理请求在loopj.AsyncHttp的onSuccess中返回null

我必须在Android中为我的应用程序使用一个restful API,在这个API中,我们必须通过我们的服务器(我使用nginx proxy_pass)来反向代理我们的应用程序请求,因为API只会回答一个注册的IP。 当我使用curl通过nginx的反向代理发送请求时,它会起作用。 但是当我的Android应用程序使用loopj.asynchttp发送请求时,onSuccessful消息,但请求状态为0,答案正文为null,我完全困惑。 它没有返回数据,所以我可以找出它的错误。 在来自手机的nginx请求日志中出现,所以请求肯定到达我的服务器,但返回的答案是有问题的。

从Android应用程序与服务器进行通信时出现各种HTTP错误

更新:2015年1月4日 我仍然有这些问题。 我们的应用程序的用户增加,我看到所有types的networking错误。 我们的应用程序发送电子邮件每次有一个networking相关的应用程序错误。 我们的应用程序进行金融交易 – 所以重新提交并不是真正的幂等 – 所以非常害怕启用HttpClient的重试function。 我们已经在服务器上做了一些响应caching来处理由用户明确完成的重新提交。 但是,仍然没有解决scheme没有不良的用户体验。 原来的问题 我有一个Android应用程序发布数据作为用户操作的一部分。 数据包括几个图像,我把它们作为Protobuf消息(字节数组,有效)打包并通过HTTPS连接发送到服务器。 虽然该应用大部分工作正常,但偶尔会看到连接错误。 这个问题现在已经变得更加明显,我们有一些用户在相对较慢的networking区域(2G连接)。 但是,这个问题并不仅限于连接速度慢的地方,客户在使用WiFi和3G连接时会遇到问题。 我们在App日志中注意到了一些例外情况 下面的一个5分钟后发生,因为我已经将套接字超时设置为5分钟。 这个应用程序试图发布145kb的数据 堆栈跟踪java.net.SocketTimeoutException:读取超时在org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_read(本地方法)在org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl $ SSLInputStream.read( OpenSSLSocketImpl.java:662)org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:103)at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:191) 下面一个发生了2.5分钟(套接字超时设置为5分钟),客户端正在发送144kb的数据 javax.net.ssl.SSLException:写入错误:ssl = 0x5e4f4640:系统调用期间发生I / O错误,在org.apache的org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_write(Native Method)中断开pipe道。 (org.apache.http.impl.io.AbstractSessionOutputBuffer.write(AbstractSessionOutputBuffer.java:109))。 io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:113) 1分钟后发生下面的一个。 堆栈跟踪javax.net.ssl.SSLException:由org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake (OpenSSLSocketImpl.java:378)at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.getInputStream(OpenSSLSocketImpl。org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl $ SSLInputStream。(OpenSSLSocketImpl.java:634)at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.getInputStream(OpenSSLSocketImpl。 Java的:605) 77秒后发生下面的一个 堆栈跟踪javax.net.ssl.SSLException:SSL握手中止:ssl = 0x5e2baf00:系统调用期间的I / O错误,由org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native方法) org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:378)at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl $ SSLInputStream。(OpenSSLSocketImpl.java:634)at org。 apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.getInputStream(OpenSSLSocketImpl.java:605)at org.apache.http.impl.io.SocketInputBuffer。(SocketInputBuffer.java:70) […]

Android-Ndk与交叉编译? 这两个工作,那么Android NDK的需求是什么?

我可以交叉编译任何C / C ++应用程序,静态链接它的Linux库,并在android上运行它。然后,Android-ndk的需求是什么?Android-ndk限制我们仿生,其中有一小部分gnu libc.Isn直接交叉编译应用程序并通过Android shell运行它更好吗?交叉编译是否有任何限制,我看不到? 这个URL: Linux应用程序可以在Android中运行吗? 在一定程度上回答了我的问题,但最终让我感到困惑和不清楚。

ANT生成错误

这可能是一个漫长的过程,但是我希望有人能够帮助我,因为我已经花了一整天的时间来解决这个问题,所以我迫切地想要让代码运行起来。 我正在使用的指南是从这里http://rmtheis.wordpress.com/2011/08/06/using-tesseract-tools-for-android-to-create-a-basic-ocr-app/和我关注单词的指示。 它告诉我, “BUILD SUCCESSFUL” when ant finishes ,确保你“BUILD SUCCESSFUL” when ant finishes 我但是不! 相反,我得到一个错误消息说 ricki @ ubuntu:〜/ tesseract-android-tools / tesseract-android-tools $ ant release Buildfile:build.xml build立失败/home/ricki/tesseract-android-tools/tesseract-android-tools/build.xml:46:缺lesssdk.dir。 确保使用'android update project'生成local.properties 这很可能对于任何人来说都太具体,在这种情况下可以随意删除。 但是,如果有人有什么我需要做的解决这个问题的想法,请帮助我! 亲切的问候

错误:jni.h:没有这样的文件或目录

我正在尝试构buildandroid ndk项目时出现错误: error: jni.h: No such file or directory 但是: locate jni.h命令show me: locate jni.h /usr/lib/jvm/java-6-openjdk-i386/include/jni.h 我的行为出了什么问题? 编辑: 如果我在源代码中对其进行硬编码,但是我有很多使用此标头的文件。 我需要做的,我所有的文件可以看到/usr/lib/jvm/java-6-openjdk-i386/include/jni.h?

Ubuntu 12.10 + Eclipse的3.8安卓设置为Android的问题

所以,我只是试图进入Android开发,并尝试使用Eclipse来设置我的系统,所以我可以通过教程和不熟悉的生态系统。 我使用Eclipse版本3.8在Ubuntu 12.10(amd64)上运行。 我遇到了一些问题/初始设置的问题,我不知道该怎么办… 1 – 我似乎没有得到“adb devices”命令来查看任何设备。 我有一个Verizon Galaxy Nexus和Nexus 7平板电脑连接到我的系统,没有看到任何东西。 我尝试在adb_usb.ini文件中添加一些供应商ID,但似乎没有办法。 我添加的两个ID是“0x4e41”和“0x18d1” – 我认为后者是“Google”设备ID,但我明显错误的地方。 2 – 我没有在“运行”button下configuration任何东西,我不知道如何通过AVD仿真器或通过设备configuration正在运行的应用程序。 我敢肯定,我不能通过我的设备运行任何应用程序,因为adb没有看到它们,但我确实有一个4.1 AVD设置,它应该能够运行任何创build的应用程序。 如何configuration“运行”button以通过模拟器推送应用程序? 它是否需要首先启动,或者它可以启动模拟器,并自动推送应用程序? 另外,一旦我解决了上面第一部分中的问题,我该如何configuration“运行”button将应用程序发送到我的设备? 任何/所有的帮助将不胜感激。 提前致谢。 编辑:作为两个评论,直到这一点已经提到使用运行菜单,但我似乎没有相同的运行菜单,你们中的任何一个。 我在运行菜单下的唯一的东西是 “外部工具”,然后下是 “运行”(这是一个没有任何东西的子菜单 – 我假设,因为我没有configuration任何东西), “外部工具configuration…” “组织collections夹…”。 我没有看到有关“运行configuration”的任何内容。 编辑2:我刚刚尝试添加在d.android.com“使用硬件”页面中提到的udev规则文件,并且似乎没有任何影响(即使重新启动后)。 仍然无法在“adb设备”中看到任何设备。 而且,是的,我的设备都打开了USBdebugging。 编辑3:似乎得到的设备显示在adb设备列表中,但仍然不知道如何将应用程序自动加载到它们。 此外,我试着运行http://developer.android.com/training/basics/firstapp/running-app.html上列出的“antdebugging”命令,我得到一个错误: Buildfile: build.xml does not exist! Build failed 不知道build.xml文件应该是什么,因为这应该是教程应用程序。

在Eclipse连接Android设备之后debugging视图中的NullPointerException

我在Fedora 16 OS上运行Eclipse,遇到一些奇怪的问题。 一切运作良好,直到我不selectdebugging视图。 之后,如果任何Android设备连接Eclipse就卡住了。 我从terminal启动了Eclipse,发现这个exception发生在卡住之前: Exception in thread "LogCat output receiver for ????????????" java.lang.NullPointerException at com.android.ddmuilib.logcat.LogCatReceiver$1.run(LogCatReceiver.java:100) at java.lang.Thread.run(Thread.java:722) 是否有任何想法如何处理? 更新 :看起来我遇到了这个问题: http : //code.google.com/p/android/issues/detail?id=34945 。

Ashmem保留政策

所以在Android上,既没有POSIX共享内存,也没有SysV共享内存,但是还有ashmem 。 我想用它从本地子系统中的崩溃中收集一些事后的信息(如在这里 )。 问题 – 当处理他们的过程死亡时,我可以让一个灰烬区域持续吗? ashmem在哪里logging?

JDK安装后缺lessJavah(Linux)

我试图在Fedora17上用Eclipse(Indigo)设置Android开发。 几乎所有东西似乎都可以工作,只是缺lessjavah,为本地(NDK / JNI)模块构buildC头。 在我的Windows安装工具链它是在同一个文件夹中的javac在,但是这不是在Linux机器上的情况。 我之前安装了Oracle的JDK1.7,发现它对于我想做的其他事情(也包括那里,没有javah)来说是新的,卸载了它,现在安装了JDK1.6。 什么可能是错的?

adb shell mount -o remount,rw -t yaffs2 / dev / block / mtdblock0 / system操作不允许

我已经把这个命令,但面临这个问题 不允许操作 adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system 并显示此错误 Operation not permitted