Android那些坑儿

    xiaoxiao2026-06-15  6

    在Android4.x源码/eclipse编译使用RecycleView

    坑点:

    1.如果你的源码编译环境java是1.6版本,直接用sdk/extras/android/support/v7/recyclerview/libs/android-support-v7-recyclerview.jar,编译时会报bad class file magic (cafebabe) or version (0033.0000)错误,并且在运行的时候找不到RecyclerView。原因是其他版本jar包是java1.7或者更高版本编译出来的,源码不支持。

    2.如果不用和recyclerview对应的android-support-v4包,编译可以通过,但是运行时会出错导致crash。

    3.如果在Android.mk里忘了添加include $(call all-makefiles-under,$(LOCAL_PATH))这句话,编译可以通过,但是运行时会找不到RecyclerView.class导致crash。jar包都没打进apk你还想玩?

    4.RecyclerView不设置LayoutManager也会导致crash,想看下运行效果好难.

    正确使用方法:

    1.从sdk目录下抠出的recyclerview和android-support-v4 jar包。如果源码环境是java1.6版本,jar包一定要用21.0.0版本

    1.1解压缩sdk目录下recyclerview-v7-21.0.0.aar,修改目录下class.jar文件名android-support-v7-recyclerview_for_eclipse_or_source.jar。名字可以随便取,为了区别android-support-v7-recyclerview.jar我加了后缀。

    路径:sdk/extras/android/m2repository/com/android/support/recyclerview-v7/21.0.0/recyclerview-v7-21.0.0.aar。

    1.2.解压缩sdk目录下support-v4-21.0.0.aar,修改目录下class.jar文件名android-support-v4_for_eclipse_or_source.jar。要用recyclerview同一版本的android-support-v4,不然编译会出错。

    路径:sdk/extras/android/m2repository/com/android/support/support-v4/21.0.0/support-v4-21.0.0.aar。

    2.把jar包复制到工程libs目录下,如果用源码编译还要修改Android.mk文件。

    ## Build Apk ################################# ... LOCAL_STATIC_JAVA_LIBRARIES := librecyclerview libandroidv4 ... include $(BUILD_PACKAGE) ## 添加第三方jar ################################# include $(CLEAR_VARS) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := librecyclerview:libs/android-support-v7-recyclerview_for_eclipse_or_source.jar \ libandroidv4:libs/android-support-v4_for_eclipse_or_source.jar \ include $(BUILD_MULTI_PREBUILT) include $(call all-makefiles-under,$(LOCAL_PATH))

    3.在加载界面的时候要设置LayoutManager,不然会报空指针异常。

    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

    转载请注明原文地址: https://ju.6miu.com/read-1310554.html
    最新回复(0)