AndroidStudio工程

android studio 下引入有.so文件的包,出现如下错误:

java.lang.UnsatisfiedLinkError: 
   dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/net.comet.example-1/base.apk"],
   nativeLibraryDirectories=[/data/app/net.comet.example-1/lib/arm64, /vendor/lib64, /system/lib64]]] 
   couldn't find "libffmpeg.so"
 at java.lang.Runtime.loadLibrary(Runtime.java:366)
 at java.lang.System.loadLibrary(System.java:989)
 at com.dtr.zbar.build.ZBarDecoder.<clinit>(ZBarDecoder.java:6)
 at me.ele.hbdteam.widget.ScanView$1.onPreviewFrame(ScanView.java:263)
 at android.hardware.Camera$EventHandler.handleMessage(Camera.java:1565)
 at android.os.Handler.dispatchMessage(Handler.java:102)
 at android.os.Looper.loop(Looper.java:155)
 at android.app.ActivityThread.main(ActivityThread.java:5696)
 at java.lang.reflect.Method.invoke(Native Method)
 at java.lang.reflect.Method.invoke(Method.java:372)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1029)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)

解决思路是:

  • 1、把libffmpeg.so拷贝一份到armeabi-v7a目录
  • 2、在app.gradle增加jniLibs声明

    sourceSets.main {
            jniLibs.srcDirs = ['libs']
    }
    

SurfaceView

播放视频的时候只有声音没有图像,主要的原因是,在调用MediaPlayer开始播放视频时
SurfaceView却还未创建成功,解决办法是判断SurfaceView创建成功后再调用MediaPlayer的播放,
通过surfaceHolder的addCallBack()方法来监听surfaceCreated

最近要上react native 项目,需要用到微博,QQ,微信三方登录,准备封装友盟的sdk,过程是相当不爽,
各个平台的key,appid都特么没有,还得使用上个项目的环境测试也是没谁了,友盟sdk5.0+的新版本不知道是我太傻还是友盟的sdk不够完善,尽然各种不走回调方法,论坛也是比较寂寥。

这是第一个react native 要上线的项目,启动过程比较艰难感觉,两个平台并行开发还要共用很多react代码,git版本控制让我觉得双平台并行开发有点烦,实在是没有先只开发一个平台,然后修改来的爽快。

整个项目目测比较复杂,业务比较多和繁琐,单独一个模块领出来就足可以造一个app了,这么重的应用我特么想互相伤害,定于九月底出第一版本,目测项目会被延期毕业。工作管理使用的Tower,挺不错的办公协作软件,可是在这关键的时刻我要请假回家,玩几天,谁怕谁!

  • react-native run-android时使用genymotion,报错如下:

    adb server version (32) doesn't match this client (36); killing...
    error: could not install *smartsocket* listener: Address already in use
    

    原因是genymotion的Android sdk没有配置为custom,将本地的sdk 设置上后 运行成功。

  • mac 下查看android sdk 安装的目录时候通过echo $ANDROID_HOME

    /Users/jichao/Library/Android/sdk
    

    Library是隐藏的,前往该目录需要在Finder选择 前往文件夹
    输入 ~/Library

  • react-native创建的工程修改android包名
    比如:react-native init hello得到的包名会是com.hello
    想修改成com.companyname.hello,需要在android目录下修改
    AndroidManifest.xml 里的package,以及app.gradule里的applicationId

  • react-native debug模式时候,出现
    debugger and device times have drifted by xxxxms,please
    correct this by running adb shell….
    这是因为手机的时间和电脑的时间差的太多,调整一下就好了。。。。

  • 更改npm registery

    npm install -g nrm
    nrm list //显示所有registery
    nrm use cnpm //切换到cnpm
    

windows 下安装让mongodb以windows服务启动,在mongo的bin目录下执行:

mongod --dbpath "d:\mongodb\data\db" --logpath "d:\mongodb\data\log\MongoDB.log" --install --serviceName "MongoDB"

启动mongodb服务:net start MongoDB

关闭mongodb服务:net stop MongoDB

基本的操作命令:

  • mongo
  • show dbs
  • use dbname
  • show collections
  • db.colname.save({key:value})
  • db colname.insert
  • db.coldbname.find()
  • db.coldbname.findOne()
  • db.coldbname.update
  • db.colname.remove
  • db.colname.drop()
  • ad.cloname.find().skip(5).limit(5)