1. android ndk 怎样调用第三方的so库文件
你好,我现在能够用NDK的如下方式写几个简单的文件,然后打包为SO,再用另外的一个.C文件调用SO,然后生成最终的供Android使用的SO文件,具体方式如下:下载一个从android模拟器里取systemlib的工具busybox,然后调用命令$adbpushbusybox/dev/sample/busybox$adbshellchmod777/dev/sample/busybox$adbshell./dev/sample/busyboxtar-cf/dev/sample/libs.tar/system/lib$adbpull/dev/sample/libs.tarlibs.tar这样就将模拟器下的/system/lib目录的所有库(so)文件打包并下载下来了,解压libs.tar就得到了我们所需要的所有库文件。接着将所有的文件到$(NDK)\build\prebuilt\windows\arm-eabi-4.2.1\lib\gcc\arm-eabi\4.2.1,这个时候基本的配置工作就结束了。然后建立tutorial01.c调用tutorial02.c中的方法,通过写makefile文件将之打包为SOCC=/cygdrive/e/android-ndk-1.5_r1/build/prebuilt/windows/arm-eabi-4.2.1/bin/arm-eabi-gccCFLAGS=-g-O2-fPIC-DANDROID-I./-I../-I/cygdrive/e/android-ndk-1.5_r1/build/platforms/android-1.5/arch-arm/usr/includeSDFLAGS=-nostdlib-Wl,-T,armelf.xsc-Wl,-soname,$@-Wl,-shared,-Bsymbolic-lcCRT_OBJS=-lz-lm#sourcefiles:SRCS=tutorial01.ctutorial02.ctutorial02.hall:libtutorial.solibtutorial.so:tutorial01.otutorial02.o$(CC)$(SDFLAGS)[email protected]$(CRT_OBJS)tutorial01.o:tutorial02.htutorial02.o:tutorial02.hclean:rm-flibtutorial.so*.o然后make,这个时候会报错can'tfind"armelf.xsc",在ndk的目录里搜索一下,搜到之后到$(NDK)\build\prebuilt\windows\arm-eabi-4.2.1\lib\gcc\arm-eabi\4.2.1,然后make,成功。接着建立一个文件test01.c,动态加载so文件,然后写一个makefile文件,最后make成功。建立一个Android工程testapp来测试其运行情况,实验表明是能够正确运行的。
2. 安卓手机控制音效声道一类的文件夹在哪
安卓手机控制音效声道一类的位置在/media/audio,系统各个文件夹位置为:
1、/dev 这里是linux系统常规文件夹,里面的文件很多都是设备模拟的文件系统,一般用户无需理会。
2、/system/fonts 这里面保存着系统的字体,如果你有root权限,可以往里添加自己喜欢的字体,比如雅黑。
3、/system/framework 这里是android系统的框架,里面保存着系统核心程序或java类库,十分重要里面的任何文件几乎都不要做删除操作。
4、/media/audio 这里面保存着安卓系统默认的铃声,alarms是闹铃提醒的,notification是短信或提示音,ringtones是来电铃声,而ui是一些界面音效,比如键盘敲击声。
3. libAppDataSearch.so在哪个文件夹
文件路径:/system/lib/libAppDataSearch.so.
精简系统可以用re管理器删除该文件,还可以删除以下lib内文件:
libWebCore_UC.so
libwebp.so
libwebp_0.2.0_base.so
libwebp_android.so
libwonderplayer_init.so
libwsld.so
libWVphoneAPI.so
libyzs_usc.so
libadcode.so
libAisound.so
libamapmapgv21alias.so
libamapmsc.so
libamapv301alias.so
libapp_BaiMapApplib_OEM500.so
libAppDataSearch.so
libAudiofe_V1_OEM500.so
libavcodec.so
libavformat.so
libavutil.so
libbds.so
libBDVoiceSearchClient_V2.so
libbestpayencode-jni.so
libBMapApiEngine_v1_3_5.so
libBrowserShell_UC.so
libbspatchhwouc.so
libcasdkjni.so
libchromeview.so
libCNPackage_OEM500.so
libejTTS.so
4. 如何用gdb找到Android so文件中的加密key
下载一个从android模拟器里取system lib的工具busybox,然后调用命令
$adb push busybox /dev/sample/busybox
$adb shell chmod 777 /dev/sample/busybox
$adb shell ./dev/sample/busybox tar -cf /dev/sample/libs.tar /system/lib
$adb pull /dev/sample/libs.tar libs.tar
这样就将模拟器下的 /system/lib 目录的所有库(so)文件打包并下载下来了,解压libs.tar就得到了咱们所需要的所有库文件。
接着将所有的文件 到 $(NDK)\build\prebuilt\windows\arm-eabi-4.2.1\lib\gcc\arm-eabi\4.2.1,这个时候基本的配置工作就结束了。
然后建立tutorial01.c调用tutorial02.c中的方法,通过写makefile文件将之打包为SO
CC = /cygdrive/e/android-ndk-1.5_r1/build/prebuilt/windows/arm-eabi-4.2.1/bin/arm-eabi-gcc
CFLAGS = -g -O2 -fPIC -DANDROID -I ./ -I ../ -I /cygdrive/e/android-ndk-1.5_r1/build/platforms/android-1.5/arch-arm/usr/include
SDFLAGS = -nostdlib -Wl,-T,armelf.xsc -Wl,-soname,$@ -Wl,-shared,-Bsymbolic -lc
CRT_OBJS= -lz -lm
# source files:
SRCS= tutorial01.c tutorial02.c tutorial02.h
all: libtutorial.so
libtutorial.so: tutorial01.o tutorial02.o
$(CC) $(SDFLAGS) -o $@ tutorial01.o tutorial02.o $(CRT_OBJS)
tutorial01.o: tutorial02.h
tutorial02.o: tutorial02.h
clean:
rm -f libtutorial.so *.o
然后make,这个时候会报错 can't find "armelf.xsc", 在ndk的目录里搜索一下,搜到之后 到$(NDK)\build\prebuilt\windows\arm-eabi-4.2.1\lib\gcc\arm-eabi\4.2.1,然后make,成功。
接着建立一个文件test01.c,动态加载so文件,然后写一个makefile文件,最后make成功。
建立一个Android工程 testapp来测试其运行情况,实验表明是能够正确运行的。
5. 如何使用android的ndk建立native的开发环境
从网上看了一篇使用andriod的toolchain在cygwin上来建立android的开发环境,但是在vista上编译始终失败,在xp上能够成功。但是编译的时间比较长,而且对于新手来说也比较麻烦,难道就没有简单的方法吗?google已经把andriod的ndk已经放出来了,所以我就想着打它的主意了,把它配置一下,就能来开发c的程序了。旁边小伙肯定笑了,“搞啥?,有病啊,ndk就是一个开发native code的环境。”大哥,我当然知道了,虽然使用ndk来开发native code相对容易,但是它的.mk文件我看的是云里雾里,我本来想调用自己写的另外一个so库,都不知道在.mk文件里如何写,我现在也懒的去看ndk里面的mk文件,等哪天(哪天?天晓得是哪一天)有空了好好研究一下。好了,闲话少说,开练吧。首先安装cygwin,这个网上的教程多的是,就不说了,接着下载android ndk,这个在andriod的官网上就有了,然后下载一个从android模拟器里取system lib的工具busybox,然后调用命令
$adb push busybox /dev/sample/busybox
$adb shell chmod 777 /dev/sample/busybox
$adb shell ./dev/sample/busybox tar -cf /dev/sample/libs.tar /system/lib
$adb pull /dev/sample/libs.tar libs.tar
这样就将模拟器下的 /system/lib 目录的所有库(so)文件打包并下载下来了,解压libs.tar就得到了我们所需要的所有库文件。
接着将所有的文件 到 $(NDK)/build/prebuilt/windows/arm-eabi-4.2.1/lib/gcc/arm-eabi/4.2.1,好了,这个时候基本的配置工作就结束了,怎么样简单多了吧。
接着编写一个简单的c文件 tutorial01.c
#include <stdio.h>
int getinformation()
{
return 0;
}
然后编写一个Makefile文件
CC = /cygdrive/f/software/android/android-ndk-1.5_r1/build/prebuilt/windows/arm-eabi-4.2.1/bin/arm-eabi-gcc
CFLAGS = -g -O2 -fPIC -DANDROID -I ./ -I ../ -I F:/software/android/android-ndk-1.5_r1/build/platforms/android-1.5/arch-arm/usr/include
SDFLAGS = -nostdlib -Wl,-T,armelf.xsc -Wl,-soname,$@ -Wl,-shared,-Bsymbolic -lc
CRT_OBJS= -lz -lm
all: libtutorial01.so
libtutorial01.so: tutorial01.o
$(CC) $(SDFLAGS) -o $@ tutorial01.o $(CRT_OBJS)
tutorial01.o: tutorial01.c
然后make,这个时候会报错 can't find "armelf.xsc", 在ndk的目录里搜索一下,搜到之后 到$(NDK)/build/prebuilt/windows/arm-eabi-4.2.1/lib/gcc/arm-eabi/4.2.1,然后make,成功。这样一个简单的so文件就生成了,这个时候如果想在android的虚拟机上运行,我们还需要给它包装一下。再编写一个文件test01.c,在这里是使用dl动态加载so文件,静态加载始终有问题,搞不清楚android是如何搜索目录,而且现在只能用绝对路径,这个问题还得仔细研究研究。
#include <string.h>
#include <jni.h>
jint
Java_com_example_testffmpeg_testffmpeg_getinformation( JNIEnv* env,
jobject thiz )
{
void* filehandle = dlopen("/data/data/com.example.test/lib/libtutorial.so", RTLD_LAZY );
int ll = -1;
if(filehandle)
{
int( * getinformation ) ();
getinformation = dlsym(filehandle, "getinformation");
if( getinformation )
{
ll = getinformation();
}
else
{
ll = -3;
}
dlclose(filehandle);
filehandle=0;
}
else
{
ll = -2;
}
return ll;
}
同样再来一个Makefile文件
CC = /cygdrive/f/software/android/android-ndk-1.5_r1/build/prebuilt/windows/arm-eabi-4.2.1/bin/arm-eabi-gcc
CFLAGS = -g -O2 -fPIC -DANDROID -I ./ -I ../ -I F:/software/android/android-ndk-1.5_r1/build/platforms/android-1.5/arch-arm/usr/include
SDFLAGS = -nostdlib -Wl,-T,armelf.xsc -Wl,-shared,-Bsymbolic -Wl,-soname,$@ -lc -L ../tutorial
CRT_OBJS= -lz -lm -ldl
all: libtest01.so
libtest01.so: test01.o
$(CC) $(SDFLAGS) -o $@ test01.o $(CRT_OBJS)
ok, make一下成功。好了,接下来使用andriod的sdk写一个简单的activity, testapp来测试其运行情况,以下是test01.java的代码。
package com.example.test;
import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;
public class test01 extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
/* Create a TextView and set its content.
* the text is retrieved by calling a native
* function.
*/
TextView tv = new TextView(this);
// tv.setText( stringFromJNI() );
Integer ll = getinformation();
String lls = ll.toString();
tv.setText(lls);
setContentView(tv);
}
/* A native method that is implemented by the
* 'hello-jni' native library, which is packaged
* with this application.
*/
public native int getinformation();
/* this is used to load the 'hello-jni' library on application
* startup. The library has already been unpacked into
* /data/data/com.example.HelloJni/lib/libhello-jni.so at
* installation time by the package manager.
*/
static {System.loadLibrary("test");
}
}
在eclipse中运行,在模拟器上显示0,就表示成功了。
转载
6. android libbinder.so在哪个文件加载
1. 直接在code里面调用dlopen, dlsym
[objc] view plain
my_cam_app->hal_lib.ptr = dlopen("libmmcamera_interface.so", RTLD_NOW);
*(voidvoid **)&(my_cam_app->hal_lib.mm_camera_open) =
dlsym(my_cam_app->hal_lib.ptr, "camera_open");
2. 如果要调用的solib也在当前的android 环境下编译生成,则可以直接在Android.mk加入到LOCAL_SHARED_LIBRARIES变量
[objc] view plain
LOCAL_SHARED_LIBRARIES:= \
libdl \
libui \
libutils \
libcutils \
libbinder \
libmedia \
libui \
3. 如果要调用的solib已经是编译好的,则可以采用在Android.mk里加入到LOCAL_LDLIBS
[objc] view plain
LOCAL_LDLIBS := -ldl -lutils #要调用的solib
LOCAL_LDLIBS += -L$(LOCAL_PATH)/libs/ #solib的path
7. 在Android设备上怎么调试守护进程
其实网上有很多类似的文章,但是你会发现几乎都不可重现,要么是细节没讲清楚,要么是压根自己没有真正去试过。这里,我仅给出自己用gdb和gdbserver调试android native code的实际过程,希望对大家有用。
注:以调试mediaserver进程为例.
第一步:你需要下载android,以debug方式编译,并以生成的image起模拟器或者设备。
第二步:你需要从“http://developer.download.nvidia.com/tegra/files/tegra-gdb-20100430.zip”下载一个gdb,覆盖到android源码中gdb对应的位置。
第三步:adb shell到设备,并起gdbserver侦听目标进程:
adb shell
gdbserver :5039 /system/bin/mediaserver
第四步: 建立pc机和设备的消息连接:
adb forward tcp:5039 tcp:5039
第五步: 使用gdb调试目标进程:
cd android_src
prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gdb out/debug/target/proct/generic/symbols/system/bin/mediaserver
第六步: 设置符号表:
set solib-absolute-prefix /your_android_src_path/out/debug/target/proct/generic/symbols
set solib-search-path /your_android_src_path/out/debug/target/proct/generic/symbols/system/lib
第七步: 使gdb和gdb server建立连接:
target remote :5039
第八步: ok. 现在可以使用gdb的命令进行调试,譬如next\break\step\info thread等.
8. 如何调用已有的SO文件来生成供Android使用的SO文件
你好,我现在能够用NDK的如下方式写几个简单的文件,然后打包为SO,再用另外的一个.C文件调用SO,然后生成最终的供Android使用的SO文件,具体方式如下:
下载一个从android模拟器里取system lib的工具busybox,然后调用命令
$adb push busybox /dev/sample/busybox
$adb shell chmod 777 /dev/sample/busybox
$adb shell ./dev/sample/busybox tar -cf /dev/sample/libs.tar /system/lib
$adb pull /dev/sample/libs.tar libs.tar
这样就将模拟器下的 /system/lib 目录的所有库(so)文件打包并下载下来了,解压libs.tar就得到了我们所需要的所有库文件。
接着将所有的文件 到 $(NDK)\build\prebuilt\windows\arm-eabi-4.2.1\lib\gcc\arm-eabi\4.2.1,这个时候基本的配置工作就结束了。
然后建立tutorial01.c调用tutorial02.c中的方法,通过写makefile文件将之打包为SO
CC = /cygdrive/e/android-ndk-1.5_r1/build/prebuilt/windows/arm-eabi-4.2.1/bin/arm-eabi-gcc
CFLAGS = -g -O2 -fPIC -DANDROID -I ./ -I ../ -I /cygdrive/e/android-ndk-1.5_r1/build/platforms/android-1.5/arch-arm/usr/include
SDFLAGS = -nostdlib -Wl,-T,armelf.xsc -Wl,-soname,$@ -Wl,-shared,-Bsymbolic -lc
CRT_OBJS= -lz -lm
# source files:
SRCS= tutorial01.c tutorial02.c tutorial02.h
all: libtutorial.so
libtutorial.so: tutorial01.o tutorial02.o
$(CC) $(SDFLAGS) -o $@ tutorial01.o tutorial02.o $(CRT_OBJS)
tutorial01.o: tutorial02.h
tutorial02.o: tutorial02.h
clean:
rm -f libtutorial.so *.o
然后make,这个时候会报错 can't find "armelf.xsc", 在ndk的目录里搜索一下,搜到之后 到$(NDK)\build\prebuilt\windows\arm-eabi-4.2.1\lib\gcc\arm-eabi\4.2.1,然后make,成功。
接着建立一个文件test01.c,动态加载so文件,然后写一个makefile文件,最后make成功。
建立一个Android工程 testapp来测试其运行情况,实验表明是能够正确运行的。
9. gdb加载动态库成功,但是不能显示动态库中的源码(gdb+gdbserver)
因为具体的给的不够详细,不清楚你遇到的情况。
如果仅从断点上看,应该就是CApartment.cpp:55
但是,如果你的程序编译的时候,不是-O0,那个可能回不到源码,只能看汇编。
1、有时候(很少)就是编译器的错误。
2、还有可能就是你调试的程序和你的源码不匹配
3、你的程序已经崩溃了,破坏了堆栈或者GDB需要的数据。
4、这个地方有特殊的定位信息
5、其他情况,还是比较多的,经常遇到。
如果懂汇编,最好看看汇编。
如果不懂,看看那一条语句是最后一条能够跟踪的语句。
仔细看看最后一条语句的所有变量,应该能猜出来是什么问题。
10. 求助,qt for android无法调试
s为 ABI 'arm-linux-android-elf-32bit'启动调试器'QmlCppEngine'...
dStart parameters: 'com.ds.elofm' mode: 6
dABI: arm-linux-android-elf-32bit
dLanguages: c++ qml
dExecutable: D:\QtWorkSpace\build-eloFM-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug\app_process
dDebugger: D:\Android\android-ndk-r10d\toolchains\arm-linux-androideabi-4.9\prebuilt\windows\bin\arm-linux-androideabi-gdb.exe
dProject: D:\QtWorkSpace\eloFM (built: D:\QtWorkSpace\build-eloFM-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug)
dQML server: 127.0.0.1:3768
dRemote: :5039
dSysroot:
dDebug Source Location:
dDebugger settings:
```````中间略...`````````
s正在设置 inferior...
<204-interpreter-exec console "set auto-solib-add on"
<205-interpreter-exec console "python sys.path.insert(1, 'C:/Qt/Qt5.4.1/Tools/QtCreator/share/qtcreator/debugger/')"
<206-interpreter-exec console "python sys.path.append('D:/Android/android-ndk-r10d/toolchains/arm-linux-androideabi-4.9/prebuilt/windows/bin/data-directory/python')"
<207-interpreter-exec console "python from gdbbridge import *"
W/ActivityThread( 7621): Application com.ds.elofm can be debugged on port 8100...
W/System.err( 7621): java.lang.ClassNotFoundException: android.graphics.drawable.RippleDrawable
W/System.err( 7621): at java.lang.Class.classForName(Native Method)
W/System.err( 7621): at java.lang.Class.forName(Class.java:251)
W/System.err( 7621): at java.lang.Class.forName(Class.java:216)
```````中间略...`````````
W/System.err( 7621): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:818)
W/System.err( 7621): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
W/System.err( 7621): at dalvik.system.NativeStart.main(Native Method)
W/System.err( 7621): Caused by: java.lang.NoClassDefFoundError: android/graphics/drawable/RippleDrawable
W/System.err( 7621): ... 25 more
W/System.err( 7621): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.graphics.drawable.RippleDrawable" on path: DexPathList[[zip file "/data/app/com.ds.elofm-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.ds.elofm-2, /vendor/lib, /system/lib]]
W/System.err( 7621): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
W/System.err( 7621): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
W/System.err( 7621): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
W/System.err( 7621): ... 25 more
W/System.err( 7621): java.lang.ClassNotFoundException: android.graphics.drawable.AnimatedStateListDrawable
W/System.err( 7621): at java.lang.Class.classForName(Native Method)
W/System.err( 7621): at java.lang.Class.forName(Class.java:251)
W/System.err( 7621): at java.lang.Class.forName(Class.java:216)
```````中间略...`````````
W/System.err( 7621): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
W/System.err( 7621): at dalvik.system.NativeStart.main(Native Method)
W/System.err( 7621): Caused by: java.lang.NoClassDefFoundError: android/graphics/drawable/AnimatedStateListDrawable
W/System.err( 7621): ... 25 more
W/System.err( 7621): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.graphics.drawable.AnimatedStateListDrawable" on path: DexPathList[[zip file "/data/app/com.ds.elofm-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.ds.elofm-2, /vendor/lib, /system/lib]]
W/System.err( 7621): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
W/System.err( 7621): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
W/System.err( 7621): ... 25 more
W/System.err( 7621): java.lang.ClassNotFoundException: android.graphics.drawable.VectorDrawable
W/System.err( 7621): at java.lang.Class.classForName(Native Method)
W/System.err( 7621): at java.lang.Class.forName(Class.java:251)
W/System.err( 7621): at java.lang.Class.forName(Class.java:216)
```````中间略...`````````
W/System.err( 7621): at dalvik.system.NativeStart.main(Native Method)
W/System.err( 7621): Caused by: java.lang.NoClassDefFoundError: android/graphics/drawable/VectorDrawable
W/System.err( 7621): ... 25 more
W/System.err( 7621): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.graphics.drawable.VectorDrawable" on path: DexPathList[[zip file "/data/app/com.ds.elofm-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.ds.elofm-2, /vendor/lib, /system/lib]]
W/System.err( 7621): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
W/System.err( 7621): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
W/System.err( 7621): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
W/System.err( 7621): ... 25 more
W/ResourceType( 7621): Skipping entry 0x1080524 in package table 0 because it is not complex!
>=thread-group-added,id="i1"
>~"GNU gdb (GDB) 7.6\n"
>~"This GDB was configured as \"--host=i586-pc-mingw32msvc --target=arm-linux-android\".\nFor bug reporting instructions, please see:\n"
>~"<http://source.android.com/source/report-bugs.html>.\n"
>&"show version\n"
>~"GNU gdb (GDB) 7.6\n"
>~"Copyright (C) 2013 Free Software Foundation, Inc.\n"
>~"This GDB was configured as \"--host=i586-pc-mingw32msvc --target=arm-linux-android\".\nFor bug reporting instructions, please see:\n"
>~"<http://source.android.com/source/report-bugs.html>.\n"
>195^done
dPARSING VERSION: 195^done
>&"show debug-file-directory\n"
>~"The directory where separate debug symbols are searched for is \"c:\\tmp\\ndk-andrewhsieh\\build\\toolchain\\prefix\\lib\\debug\".\n"
>196^done
```````中间略...`````````
>211^done
<212target extended-remote tcp::5039
>&"target extended-remote tcp::5039\n"
>~"Remote debugging using tcp::5039\n"
>~"Ignoring packet error, continuing...\n"
>&"warning: unrecognized item \"timeout\" in \"qSupported\" response\n"
unrecognized item "timeout" in "qSupported" response
>~"Ignoring packet error, continuing...\n"
W/System.err( 7621): java.lang.Exception:
W/System.err( 7621): at org.qtproject.qt5.android.bindings.QtActivity.loadApplication(QtActivity.java:261)
W/System.err( 7621): at org.qtproject.qt5.android.bindings.QtActivity.startApp(QtActivity.java:660)
W/System.err( 7621): at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:900)
W/System.err( 7621): at android.app.Activity.performCreate(Activity.java:5303)
W/System.err( 7621): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1091)
W/System.err( 7621): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2165)
W/System.err( 7621): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2255)
W/System.err( 7621): at android.app.ActivityThread.access$800(ActivityThread.java:142)
W/System.err( 7621): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1213)
W/System.err( 7621): at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err( 7621): at android.os.Looper.loop(Looper.java:136)
W/System.err( 7621): at android.app.ActivityThread.main(ActivityThread.java:5217)
W/System.err( 7621): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 7621): at java.lang.reflect.Method.invoke(Method.java:515)
W/System.err( 7621): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:818)
W/System.err( 7621): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
W/System.err( 7621): at dalvik.system.NativeStart.main(Native Method)
>~"Ignoring packet error, continuing...\n"
>~"Ignoring packet error, continuing...\n"
>&"Remote connection closed\n"
dNOTE: INFERIOR EXITED
dState changed from InferiorSetupRequested(4) to InferiorExitOk(16)
dQUIT DEBUGGER REQUESTED IN STATE 6
dNOTE: INFERIOR ILL
dState changed from InferiorSetupOk(6) to InferiorShutdownRequested(17)
dQUEUE: SHUTDOWN INFERIOR
dState changed from InferiorExitOk(16) to InferiorShutdownOk(19)
dNOTE: INFERIOR EXITED
dState changed from InferiorSetupRequested(4) to InferiorExitOk(16) [master]
dState changed from InferiorExitOk(16) to InferiorShutdownOk(19) [master]
dState changed from InferiorShutdownOk(19) to EngineShutdownRequested(20) [master]
dQUEUE: SHUTDOWN ENGINE
>212^error,msg="Remote connection closed"
sFailed to start application: 连接远程服务器失败:
sRemote connection closed
dINFERIOR START FAILED
dNOTE: INFERIOR SETUP FAILED
s设置失败。
dState changed from InferiorShutdownOk(19) to InferiorSetupFailed(5)
dQUIT DEBUGGER REQUESTED IN STATE 17
dNOTE: INFERIOR ILL
dState changed from InferiorShutdownRequested(17) to InferiorShutdownRequested(17)
dQUEUE: SHUTDOWN INFERIOR
dNOTE: INFERIOR SETUP FAILED
s设置失败。
dState changed from EngineShutdownRequested(20) to InferiorSetupFailed(5) [master]
dState changed from InferiorSetupFailed(5) to EngineShutdownRequested(20) [master]
dQUEUE: SHUTDOWN ENGINE
dCALL: SHUTDOWN INFERIOR
dINFERIOR SUCCESSFULLY SHUT DOWN
dState changed from InferiorShutdownRequested(17) to InferiorShutdownOk(19)
dCALL: SHUTDOWN ENGINE
dState changed from InferiorSetupFailed(5) to EngineShutdownRequested(20)
dINITIATE GDBENGINE SHUTDOWN IN STATE 0, PROC: 2
<213-gdb-exit
dCALL: SHUTDOWN INFERIOR
dINFERIOR SUCCESSFULLY SHUT DOWN
dState changed from InferiorShutdownOk(19) to InferiorShutdownOk(19)
dCALL: SHUTDOWN ENGINE
dState changed from EngineShutdownRequested(20) to EngineShutdownRequested(20)
dINITIATE GDBENGINE SHUTDOWN IN STATE 0, PROC: 2
<214-gdb-exit
>213^exit
dGDB CLAIMS EXIT; WAITING
dUNEXPECTED GDB STDERR: Could not AssignProcessToObject
dGDB PROCESS FINISHED, status 0, code 0
dNOTE: ENGINE SHUTDOWN OK
dState changed from EngineShutdownRequested(20) to EngineShutdownOk(22)
dNOTE: ENGINE SHUTDOWN OK
dState changed from EngineShutdownRequested(20) to EngineShutdownOk(22) [master]
dState changed from EngineShutdownOk(22) to DebuggerFinished(23) [master]
dQUEUE: FINISH DEBUGGER
dState changed from EngineShutdownOk(22) to DebuggerFinished(23)
dNOTE: FINISH DEBUGGER
dHANDLE RUNCONTROL FINISHED
s调试器已结束。