Android Studio 0.8.2:使用提供了jar库的sdk插件的项目

永远学习

我正在尝试构建一个SDK附加组件,以便开发人员可以使用我们的库。我从使用此示例(包含系统服务的jar库附加组件)开始:

https://github.com/gibsson/basic_sdk_addon
https://github.com/gibsson/BasicService
https://github.com/gibsson/BasicClient

我已按照BasicService和BasicClient github页面上的说明进行操作,并通过使用AOSP(适用于Android 4.3)构建了两个应用程序,成功创建了工作映像。
我通过将以下内容添加到device.mk文件中来构建了这两个软件包:

PRODUCT_PACKAGES += \
    com.gibsson.basic.service.lib \
    com.gibsson.basic.service.lib.xml \
    BasicServiceApp \
    BasicClient

这样,一切都建立在图像中并开始工作。

End of introduction

我从构建过程中删除了BasicClient程序包,并试图将此客户端与SDK一起带入Android Studio,就像Android开发人员一样(他们无权访问AOSP)

按照说明并使用以下命令已成功创建了basic_sdk_addon:

AOSP$ make PRODUCT-basic_sdk_addon-sdk_addon

我使用用户定义的存储库在Android Studio中安装了附加组件。在BasicClient项目中,我必须手动将.jar文件添加到app / libs文件夹中,然后单击“添加为库”,以便正确地编译BasicClient。

尝试从AndroidStudio运行/调试BasicClient时,出现以下错误(来自logcat,它会更详细):

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 Studio之间使用相同版本的地方:两者都使用相同的JDK(1.6.0.45)和相同的编译版本(18)。

永远学习

正常工作:导入BasicService Eclipse项目似乎修改了Dependencies范围下拉菜单(在Project Structure中)。现在,我可以选择Provided而不是Compile,该应用程序可以完美运行。
从头开始创建新项目时,我只有以下选择:编译,运行时。

因此,我查看了两个项目之间的差异,并且该build.gradle文件是唯一更改文件:compile被替换了provided

dependencies {
    provided files('libs/com.orthogone.canvas.service.lib.jar')
}

UI中似乎存在一个错误,因为“依赖关系”对话框即使进行了build.gradle修改也没有提供此选择。

另一个重要说明:AndroidManifest.xml必须包含<uses-library>以下<appliation>部分中信息

    <uses-library
        android:name="com.gibsson.basic.service.lib"
        android:required="true" />

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android Studio错误:(8,0)找不到ID为'android'的插件

使用gradle插件0。*。*在Android Studio 1.0+中打开项目

在Android Studio中使用Java 8

Android Studio 使用 Java 8 而不是 11

Android Studio使用Java 8编译项目吗?

Android Studio 4.0.0 Java 8库在D8和R8构建错误

使用Android Studio的Android库项目

glcreateShader在Android Studio中使用opengl es 2.0返回0

Android Studio 3.0 Canary 2仍要求Jack for Java 8

使用Java 8在Android Studio 2.1中获取错误

Android Studio将Android库项目导出为jar

Android Studio错误:(3,0)找不到ID为'com.android.application'的插件

在Android Studio中,如何配置我的项目以使用Java 8

Android Studio:测试:已使用Java 8或更高版本编译的库依赖项

Android Studio EditText字段为null或0

从导入的库访问项目中的 jar - gradle / android studio

如何为jar库设置Android Studio项目?

Android Studio,Java 8和功能

在Android中使用Java 8无法运行Android Studio Instant Run

使用Android Studio定位API 8(Android 2.2)会导致合并失败错误

使用Retrofit2的Android Studio上位置0的JSON中的意外令牌#错误

Android studio (0,0) 在设备的右上角

使用deployGate gradle插件构建Android Studio项目

无法使用Cordova插件在Android Studio中编译Cordova项目

Android Studio项目无法在Android 9.0或更高版本上运行,但在Android 7或8上可以正常运行

Windows 8上的tools.jar似乎不在Android Studio类路径中

更新Android Studio后是否在现有项目上启用了r8?

Android Studio-数据库文件加载的编码错误:“ UTF-8”

缺少Android Studio SDK