小编din*_*nri的帖子

无法使用外部jar中的Ant构建多个Android dex文件

我正在开发一个需要多个库的Android应用程序(适用于Facebook,Google Maps v2和Quickblox等),导致方法数量溢出超过64K限制:

Unable to execute dex: method ID not in [0, 0xffff]: 65536
Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536
Run Code Online (Sandbox Code Playgroud)

由于我不能没有任何这些库,我寻找方法限制bug的解决方案.我发现了一个来自Android开发者的热门博客文章,推荐使用源代码部门.(我正在谈论的博客条目可以在这里找到:http://android-developers.blogspot.com.es/2011/07/custom-class-loading-in-dalvik.html).我一直在尝试这个解决方案但没有成功.

我现在的问题是,最大量的代码不在我的应用程序本身,但在所需的库中,所以我必须在我必须在我的应用程序中加载的不同dex文件中传播这些库.我对Ant的了解非常有限,我想知道的是我应该在build.xml文件中编写什么来使dex复制我想要的每个库:

            <!-- Primary dex to include my source code and some libraries. -->
            <copy todir="${out.classes.absolute.dir}.1" >
                <fileset dir="${out.classes.absolute.dir}" >

                ...

                </fileset>
            </copy>


            <!-- Secondary dex to include some other libraries. -->
            <copy todir="${out.classes.absolute.dir}.2" >
                <fileset dir="${out.classes.absolute.dir}" >

                ...  

                </fileset>
            </copy>
Run Code Online (Sandbox Code Playgroud)

任何帮助都会得到真正的赞赏.在此先感谢,亲切的问候!

ant android antbuilder quickblox

17
推荐指数
2
解决办法
2342
查看次数

设置Crashlytics时无法运行应用程序 - 抛出NoClassDefFoundError

我正在尝试将Crashlytics添加到我的Android应用程序中,但是当我按下Eclipse中的"运行"按钮时,由于NoClassDefFoundError,我无法运行它.

我使用Crashlytics插件安装了ADT版本的Eclipse,然后运行了Crashlytics助手.当我到达"构建并运行您的应用程序以检查Crashlytics是否正常"时,我得到以下堆栈跟踪:

06-19 00:18:53.647: E/AndroidRuntime(25400): java.lang.NoClassDefFoundError: com.crashlytics.android.Crashlytics
06-19 00:18:53.647: E/AndroidRuntime(25400):    at <app_package>.gui.MainMenuActivity.onCreate(MainMenuActivity.java:24)
06-19 00:18:53.647: E/AndroidRuntime(25400):    at android.app.Activity.performCreate(Activity.java:5206)
06-19 00:18:53.647: E/AndroidRuntime(25400):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083)
06-19 00:18:53.647: E/AndroidRuntime(25400):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
06-19 00:18:53.647: E/AndroidRuntime(25400):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
06-19 00:18:53.647: E/AndroidRuntime(25400):    at android.app.ActivityThread.access$600(ActivityThread.java:140)
06-19 00:18:53.647: E/AndroidRuntime(25400):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
06-19 00:18:53.647: E/AndroidRuntime(25400):    at android.os.Handler.dispatchMessage(Handler.java:99)
06-19 00:18:53.647: E/AndroidRuntime(25400):    at android.os.Looper.loop(Looper.java:137)
06-19 00:18:53.647: E/AndroidRuntime(25400):    at android.app.ActivityThread.main(ActivityThread.java:4898)
06-19 00:18:53.647: E/AndroidRuntime(25400):    at java.lang.reflect.Method.invokeNative(Native Method)
06-19 00:18:53.647: E/AndroidRuntime(25400):    at java.lang.reflect.Method.invoke(Method.java:511)
06-19 00:18:53.647: E/AndroidRuntime(25400):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
06-19 00:18:53.647: E/AndroidRuntime(25400):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
06-19 00:18:53.647: …
Run Code Online (Sandbox Code Playgroud)

android crashlytics

5
推荐指数
1
解决办法
4868
查看次数

标签 统计

android ×2

ant ×1

antbuilder ×1

crashlytics ×1

quickblox ×1