问题:创建虚拟设备界面中,Target下拉框里面无选择项 原因:没有安装AVD 解决:下载android sdk,运行SDK Manage , 选择SDK platform Android 4.0.3 API,install 问题:无法启动AVD(虚拟设备) 原因:我修改注册表更改mydocument路径了,导致eclipse犯傻 解决:将E:\Document\.android目录拷贝到C:\Documents and Settings\Administrator 问题:SDK里面没有sample源码 原因:下载SDK的时候没有选择sample 解决:运行SDK Manage ,选择Sample for SDK API 15点install 问题:读写SD卡失败 原因:没有权限 解决:修改androidManifest.xml 在行<uses-sdk android:minSdkVersion="15" />后增加 <!-- 在SDCard中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 往SDCard写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 问题:ndk和java都不能使用socket 原因:没有网络权限 解决:修改修改androidManifest.xml ,增加<uses-permission android:name="android.permission.INTERNET" /> 问题:无法打开jni目录里面的cpp文件 原因:没有安装adt插件 解决:下载adt安装 问题:如何使用虚拟机里面的sd卡 解决:cd D:\Java\android-sdk-windows-r10\platform-tools 运行adb 从sd卡拉数据到本地硬盘: adb pull /mnt/sdcard/file.txt C:\ 将硬盘文件上传到sd卡: adb push c:\file.txt /mnt/sdcard/ 运行shell 可ls 查看文件: adb shell 问题:操作失败提示: more than one device and emulator 原因:你连接了多个设备或虚拟设备 解决: 1,列出所有设备和连接IP运行:adb devices 2,关闭设备连接:adb disconnect 192.168.1.123 3,或指定设备来操作:adb -s emulator-5554 shell 问题:如何安装和重装你的android程序 解决: 1,安装:adb install Demo.apk 2,重新安装:adb install -r Demo.apk 问题:在JNI里面用Logcat 1, cpp文件中: #include <android/log.h> #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,__FILE__,__VA_ARGS__) 代码调用LOGD("hellow"); 2,android.mk文件中: LOCAL_SRC_FILES= 行下面加 LOCAL_LDLIBS := -llog 问题:如何在线程里面用 JNIEnv *env JNIEnv *env指针不可为多个线程共用,但是java虚拟机的JavaVM指针是整个jvm公用的,我们可以通过JavaVM来得到当前线程的JNIEnv指针. 于是,在第一个线程A中调用: JavaVM* gs_jvm; env->GetJavaVM(&gs_jvm); 来获取JavaVM指针.获取了这个指针后,将该JavaVM指针gs_jvm作为全局变量保存起来。在另一个线程B里,调用JNIEnv *env; JNIEnv *env; gs_jvm->AttachCurrentThread((void **)&env, NULL); 这里就获得了B这个线程在jvm中的JNIEnv指针env. jobject可以这样保存 jobject g_obj = (env)->NewGlobalRef(j);