android开发记录

1、开发百度地图时需要申请key值,申请过程中遇到了两个问题

   A、keytool不是内部或外部命令,也不是可运行的程序或批处理文件

   解决办法:找到keytool所在的目录,然后再执行keytool的那条命令

   B、申请成功之后一直无法使用,官网上说可能是因为安全码输入的不正确,仔细核对了好多遍发现真的没有错误。

网上查看了很多解释,最后发现原来android studio的包名不能以AndroidMainfest.xml为准,是以build.gradle中defaultConfig 中的applicationId定义的名字为准。


2、LinearLayout内的webview滑动与整体view滑动冲突的问题

      网上查了半天,想了好多解决办法,最后才发现,只要灵活控制父view的onInterceptTouchEvent方法就能解决问题


3、使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法

  参照别人的解决办法:

  androidTranslation库已经太老了。需要安装新的库GenyMotion-ARM-Translation_v1.1.zip。

  将你的虚拟器运行起来,将下载好的zip包用鼠标拖到虚拟机窗口中,出现确认对跨框点OK就行。然后重启你的虚拟机。


4、编译时出现:非法字符 :\65279

  使用notepad++ 以utf-8无BOM格式编码该文件。

  需要注意的是拷贝别人的文件是若出现此问题切不可直接将源文件复制粘贴过来,需自己新建文件,将转码过后的文件内容粘贴过来。


5、android.os.NetworkOnMainThreadException

 访问网络不能在主程序中进行,采用异步机制,单开线程的方式


6、LayoutInflater的作用类似于findViewById(),它是用来找res/layout/下的xml布局文件,并且实例化。

 用于载入界面,使用LayoutInflater.inflate()来载入。

 有三种方法,基本类似:

 1.LayoutInflater inflater = getLayoutInflater();

 2.LayoutInflater inflater    =  (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

 3.LayoutInflater inflater = LayoutInflater.from(context);


7、listview嵌套scrollview高度自适应问题

 重写listview的onMeasure方法

 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
                MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }

8、unexpected top_level exception

 以上问题是由于有两个版本不同的jar包导致的冲突


9、android studio 查看加载的库

  file -> project structure

  点击project可以查看gradle版本


10、android studio集成genymotion模拟器

 1)先安装包含VirtualBox的Genymotion

 2)安装Genymotion的插件-Intellij IDEA

   file->settings->plugins

   选择android suport->Install plugin from disk

   选择下载的插件进行安装。

 在模拟器上运行,还要确保模拟器也加载了android SDK

 不过,真机测试最好了,就不用这么麻烦啦

11 E/JavaBinder﹕ !!! FAILED BINDER TRANSACTION !!!

  原来是因为系统对Intent传递数据的大小有限制。


12 java.io.EOFException

        综合很多网上的资料说是ksoap的bug,使用这个版本的包,可以解决问题ksoap2-android-assembly-2.6.4-jar-with-dependencies.jar


13 从github找的开源的加载动画,编译没有错误,在测试机上实验时报错

     java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

    从错误提示中提到Theme.AppCompat theme,这是因为我们的activity一定是继承了兼容包中的类,
比如我这里就无意中继承了ActionBarActivity,它来自android.support.v7.app.ActionBarActivity。
所以就要使用与其配合的AppCompat的theme才行。

14 java.lang.ClassCastException:android.app.Application cannot be cast to

  这是由于没有在AndroidMainfest.xml中添加类的声明


15  某个功能一直闪退,查找了半天才知道原来intent的传值有大小限制,传递的图片太多导致报错


16  adpater设计中的两个函数

     1)public  int  getItemViewType(int position);

     2)public  int  getViewTypeCount();

     3)为了避免NotifyDataSetChanged方法刷新全部重绘的问题,可以自定义一个update方法,只更新需要修改的view

     



   






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
步数记录器可以通过以下步骤实现: 1. 添加传感器权限和计步器传感器类型声明到AndroidManifest.xml文件中。 ``` <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" /> <uses-feature android:name="android.hardware.sensor.stepcounter" /> <uses-feature android:name="android.hardware.sensor.stepdetector" /> ``` 2. 在Activity中获取传感器服务的实例。 ``` SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); ``` 3. 获取计步器传感器的实例,并注册监听器。 ``` Sensor stepSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER); sensorManager.registerListener(this, stepSensor, SensorManager.SENSOR_DELAY_NORMAL); ``` 4. 在监听器中,实现步数的记录和更新。 ``` @Override public void onSensorChanged(SensorEvent event) { Sensor sensor = event.sensor; if (sensor.getType() == Sensor.TYPE_STEP_COUNTER) { int stepCount = (int) event.values[0]; updateStepCount(stepCount); } } private void updateStepCount(int stepCount) { // 记录步数并更新UI mStepCount = stepCount; mStepCountTextView.setText(String.valueOf(mStepCount)); } ``` 5. 在Activity中,可以添加计时器,定期记录步数并更新UI。 ``` private Timer mTimer; private TimerTask mTimerTask; private void startRecord() { mTimer = new Timer(); mTimerTask = new TimerTask() { @Override public void run() { updateStepCount(mStepDetector.getStepCount()); } }; mTimer.schedule(mTimerTask, 0, 1000); } private void stopRecord() { if (mTimer != null) { mTimer.cancel(); mTimer = null; } if (mTimerTask != null) { mTimerTask.cancel(); mTimerTask = null; } } ``` 以上是一个简单的步数记录器的实现示例。需要注意的是,计步器传感器的精度和准确性可能会受到设备硬件和软件版本的影响,因此需要进行测试和验证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值