首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android 0.8.2:使用sdk附加的项目,其中提供了一个jar库

Android 0.8.2:使用sdk附加的项目,其中提供了一个jar库
EN

Stack Overflow用户
提问于 2014-07-11 14:42:53
回答 1查看 823关注 0票数 4

我正在尝试构建一个SDK外接程序,以便开发人员可以使用我们的库。我首先使用这个示例(包含系统服务的jar库外接程序):

addon

https://github.com/gibsson/BasicService

https://github.com/gibsson/BasicClient

我遵循了BasicService和BasicClient github页面的说明,通过使用AOSP (用于Android4.3)构建这两个应用程序,成功地创建了一个工作映像。

通过将以下内容添加到device.mk文件中,我构建了这两个包:

代码语言:javascript
运行
复制
PRODUCT_PACKAGES += \
    com.gibsson.basic.service.lib \
    com.gibsson.basic.service.lib.xml \
    BasicServiceApp \
    BasicClient

这样,一切都是建立在形象和工作。

End of introduction

我从构建过程中删除了BasicClient包,我正试图将这个客户端与SDK一起带到Android中,就像Android开发人员所做的那样(他们无法访问AOSP)

basic_sdk_addon是通过遵循指令并使用以下命令成功创建的:

代码语言:javascript
运行
复制
AOSP$ make PRODUCT-basic_sdk_addon-sdk_addon

我使用用户定义的repo在Android中安装了外接程序。在BasicClient项目中,我必须手动将.jar文件添加到app/libs文件夹中,然后单击"Add“,以便正确编译BasicClient。

当试图从BasicClient运行/调试AndroidStudio时,我得到以下错误(来自logcat,更详细):

代码语言:javascript
运行
复制
I/ActivityManager( 2544): Start proc com.gibsson.basic.client for activity com.gibsson.basic.client/.BasicActivity: pid=3311 uid=10044 gids={50044, 1015, 1028}
W/dalvikvm( 3311): Class resolved by unexpected DEX: Lcom/gibsson/basic/client/BasicActivity;(0x4213e238):0x40030000 ref [Lcom/gibsson/basic/service/lib/BasicManager;] Lcom/gibsson/basic/service/lib/BasicManager;(0x4213e238):0x4001d000
W/dalvikvm( 3311): (Lcom/gibsson/basic/client/BasicActivity; had used a different Lcom/gibsson/basic/service/lib/BasicManager; during pre-verification)
D/AndroidRuntime( 3311): Shutting down VM
W/dalvikvm( 3311): threadid=1: thread exiting with uncaught exception (group=0x41891700)
E/AndroidRuntime( 3311): FATAL EXCEPTION: main
E/AndroidRuntime( 3311): java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
E/AndroidRuntime( 3311):        at com.gibsson.basic.client.BasicActivity.<init>(BasicActivity.java:18)
E/AndroidRuntime( 3311):        at java.lang.Class.newInstanceImpl(Native Method)
E/AndroidRuntime( 3311):        at java.lang.Class.newInstance(Class.java:1130)
E/AndroidRuntime( 3311):        at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
E/AndroidRuntime( 3311):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)
E/AndroidRuntime( 3311):        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
E/AndroidRuntime( 3311):        at android.app.ActivityThread.access$600(ActivityThread.java:141)
E/AndroidRuntime( 3311):        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
E/AndroidRuntime( 3311):        at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 3311):        at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 3311):        at android.app.ActivityThread.main(ActivityThread.java:5103)
E/AndroidRuntime( 3311):        at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 3311):        at java.lang.reflect.Method.invoke(Method.java:525)
E/AndroidRuntime( 3311):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
E/AndroidRuntime( 3311):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
E/AndroidRuntime( 3311):        at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 2544):   Force finishing activity com.gibsson.basic.client/.BasicActivity

我了解到发现的BasicManager dex文件与它期望的不匹配。我验证了AOSP和Android之间相同版本的工具是否使用相同的JDK (1.6.0.45)和相同的编译版本(18)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-14 16:27:58

明白了:导入BasicService项目似乎修改了Dependencies范围下拉菜单(在project中)。现在我可以选择提供的,而不是编译,并且应用程序运行得很好。

在从头创建新项目时,我只有以下选择:编译、运行时。

因此,我已经研究了这两个项目之间的差异,而build.gradle文件是唯一被更改的文件:compileprovided所取代。

代码语言:javascript
运行
复制
dependencies {
    provided files('libs/com.orthogone.canvas.service.lib.jar')
}

UI中似乎有一个bug,因为Dependencies即使修改了build.gradle,也不会提供这种选择。

另一个重要注意事项: AndroidManifest.xml必须在<appliation>部分中包含<uses-library>信息:

代码语言:javascript
运行
复制
    <uses-library
        android:name="com.gibsson.basic.service.lib"
        android:required="true" />
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24700422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档