工作中Android编译几乎遇不到的问题,接口分离

trouble writing output: Too many methods: 65634; max is 65536. By package:(接口太多,撑破了。需要接口分离)
    26 android
   145 android.accessibilityservice
   700 android.accounts
   436 android.animation
     8 android.annotation
  3796 android.app
   240 android.app.admin
   308 android.app.backup
   105 android.appwidget
  1152 android.bluetooth
  1754 android.content
   964 android.content.pm
   566 android.content.res
   522 android.database
   497 android.database.sqlite
    91 android.ddm
     5 android.debug
   166 android.drm
    51 android.drm.mobile1
    30 android.emoji
    23 android.filterfw
   817 android.filterfw.core
。。。。。。

 

此问题为framework接口太多造成了Too many methods: 65634,Google原始最大可容纳655345个接口,当Goolge给提供的接口不够用时我们自己就需要在framework中加入一些接口,这样就会导致接口超出65535这个数字,需要在\build\target\product\core.mk加入PRODUCT_PACKAGES,将一些多余的接口加入到其它包中。

方法:https://github.com/CyanogenMod/android_frameworks_base/commit/854f6f736b90d33b59b5a85bcecf72a416c43b7d

 

40  Android.mk  show inline notes 
View file @ 854f6f7 ...  ...  @@ -28,10 +28,25 @@ framework_res_source_path := APPS/framework-res_intermediates/src 
28  28    
29  29   # the library 
30  30   # ============================================================ 
   31  +# 
   32  +# These will be included in framework2 to avoid issues with the limit 
   33  +# on the number of classes/dex 
   34  +SECONDARY_FRAMEWORKS_SUBDIRS := \ 
   35  +        core/java/android/test \ 
   36  +        core/java/android/gesture \ 
   37  +        core/java/android/speech/srec \ 
   38  +        media/java/android/media/videoeditor \ 
   39  +        media/java/android/media/audiofx \ 
   40  +        media/mca/effect/java/android/media/effect \ 
   41  +        media/mca/effect/java/android/media/effect/effects 
   42  + 
31  43   include $(CLEAR_VARS) 
32  44    
33  45   # FRAMEWORKS_BASE_SUBDIRS comes from build/core/pathmap.mk 
34  46   LOCAL_SRC_FILES := $(call find-other-java-files,$(FRAMEWORKS_BASE_SUBDIRS)) 
   47  +SECONDARY_SRC_FILES := $(call find-other-java-files,$(SECONDARY_FRAMEWORKS_SUBDIRS)) 
   48  + 
   49  +LOCAL_SRC_FILES := $(filter-out $(SECONDARY_SRC_FILES),$(LOCAL_SRC_FILES)) 
35  50    
36  51   # EventLogTags files. 
37  52   LOCAL_SRC_FILES += \ 
...  ...  @@ -252,6 +267,7 @@ $(full_classes_compiled_jar): $(framework_res_R_stamp) 
252  267   $(LOCAL_INSTALLED_MODULE): | $(dir $(LOCAL_INSTALLED_MODULE))framework-res.apk 
253  268    
254  269   framework_built := $(call java-lib-deps,framework) 
   270  +framework_built += $(call java-lib-deps,framework2) 
255  271    
256  272   # AIDL files to be preprocessed and included in the SDK, 
257  273   # relative to the root of the build tree. 
...  ...  @@ -390,6 +406,7 @@ framework_docs_LOCAL_JAVA_LIBRARIES := \ 
390  406         core \ 
391  407         ext \ 
392  408         framework \ 
   409  +      framework2 \ 
393  410    
394  411   framework_docs_LOCAL_MODULE_CLASS := JAVA_LIBRARIES 
395  412   framework_docs_LOCAL_DROIDDOC_HTML_DIR := docs/html 
...  ...  @@ -664,7 +681,7 @@ include $(CLEAR_VARS) 
664  681    
665  682   LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES) 
666  683   LOCAL_INTERMEDIATE_SOURCES:=$(framework_docs_LOCAL_INTERMEDIATE_SOURCES) 
667     -LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES) framework 
   684  +LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES) framework framework2 
668  685   LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 
669  686   LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 
670  687   LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR) 
...  ...  @@ -717,6 +734,26 @@ LOCAL_DX_FLAGS := --core-library 
717  734    
718  735   include $(BUILD_JAVA_LIBRARY) 
719  736    
   737  +include $(CLEAR_VARS) 
   738  + 
   739  +# FRAMEWORKS_BASE_SUBDIRS comes from build/core/pathmap.mk 
   740  +LOCAL_SRC_FILES := $(call find-other-java-files,$(SECONDARY_FRAMEWORKS_SUBDIRS)) 
   741  + 
   742  +LOCAL_NO_STANDARD_LIBRARIES := true 
   743  +LOCAL_JAVA_LIBRARIES := bouncycastle core core-junit ext framework 
   744  + 
   745  +LOCAL_MODULE_TAGS := optional 
   746  +LOCAL_MODULE := framework2 
   747  +LOCAL_MODULE_CLASS := JAVA_LIBRARIES 
   748  + 
   749  +LOCAL_NO_EMMA_INSTRUMENT := true 
   750  +LOCAL_NO_EMMA_COMPILE := true 
   751  + 
   752  +#LOCAL_JARJAR_RULES := $(LOCAL_PATH)/jarjar-rules.txt 
   753  + 
   754  +LOCAL_DX_FLAGS := --core-library 
   755  + 
   756  +include $(BUILD_JAVA_LIBRARY) 
720  757    
721  758   # Include subdirectory makefiles 
722  759   # ============================================================ 
...  ...  @@ -726,3 +763,4 @@ include $(BUILD_JAVA_LIBRARY) 
726  763   ifeq (,$(ONE_SHOT_MAKEFILE)) 
727  764   include $(call first-makefiles-under,$(LOCAL_PATH)) 
728  765   endif 
   766  + 

 

2  test-runner/Android.mk  show inline notes 
View file @ 854f6f7 ...  ...  @@ -20,7 +20,7 @@ include $(CLEAR_VARS) 
20  20    
21  21   LOCAL_SRC_FILES := $(call all-java-files-under, src) 
22  22    
23     -LOCAL_JAVA_LIBRARIES := core core-junit framework 
   23  +LOCAL_JAVA_LIBRARIES := core core-junit framework framework2 
24  24    
25  25   LOCAL_MODULE:= android.test.runner 
26  26    


转自:http://blog.csdn.net/wzy0467/article/details/7970681

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值