【问题标题】:Fields from imported android library not generated in R fileR文件中未生成导入的android库中的字段
【发布时间】:2016-03-13 03:24:15
【问题描述】:

我需要将某个 SDK 与我的应用程序集成,我在我的 gradle 依赖项中添加了 .aar 文件,并添加了他们提供给我的代码。 gradle 构建没有任何特殊问题,但是当我尝试启动 SDK 的活动时,应用程序崩溃并出现以下异常:

12-07 16:28:09.991 16236-16236/? E/AndroidRuntime: FATAL EXCEPTION: main
                                               Process: com.positiveapps.clickins, PID: 16236
                                               java.lang.NoSuchFieldError: No static field action_show_neura of type I in class Lcom/neura/standalonesdk/R$id; or its superclasses (declaration of 'com.neura.standalonesdk.R$id' appears in /data/app/com.positiveapps.clickins-1/base.apk:classes2.dex)
                                                   at com.neura.dashboard.R$id.<clinit>(R.java:995)
                                                   at com.neura.dashboard.activity.LoginActivity.onCreate(LoginActivity.java:59)
                                                   at com.neura.dashboard.activity.AppAuthenticationActivity.onCreate(AppAuthenticationActivity.java:26)
                                                   at android.app.Activity.performCreate(Activity.java:5990)
                                                   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                                                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
                                                   at android.app.ActivityThread.access$800(ActivityThread.java:151)
                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
                                                   at android.os.Handler.dispatchMessage(Handler.java:102)
                                                   at android.os.Looper.loop(Looper.java:135)
                                                   at android.app.ActivityThread.main(ActivityThread.java:5254)
                                                   at java.lang.reflect.Method.invoke(Native Method)
                                                   at java.lang.reflect.Method.invoke(Method.java:372)
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

查看应用程序中生成的 R 文件后,我发现生成的 R 中缺少 aar 中 R.txt 文件中存在的大量字段。

我尝试使用和不使用 proguard 进行构建,更新 gradle 版本,清理和重建项目,手动删除“build”目录,将 aar 添加为模块。 这些似乎都不是问题,R 文件仍然缺少字段。

感谢您的帮助,伊利亚。

【问题讨论】:

    标签: android android-gradle-plugin build.gradle android-library


    【解决方案1】:

    将 aar 文件保存在 libs 文件夹中。 (作为 libname.aar )

    然后在 app build.gradle 中指定以下内容。

    repositories {
        flatDir {
            dirs 'libs'
        }
    }
    
    dependencies {
        compile(name:'libname', ext:'aar')
    }
    

    然后点击同步项目与 gradle 文件。

    然后清理构建项目。

    【讨论】:

    • 能否指定SDK名称!
    • SDK 是由 Neura 公司开发的,好像还没有公开。我就这个问题联系了他们寻求帮助,看来问题出在他们编译的 Proguad 上。当我从他们那里获得新编译的版本时,我会更新。谢谢!
    • java.lang.NoSuchFieldError: com.neura.standalonesdk.R$string.common_google_play_services_api_unavailable_text”
    猜你喜欢
    • 2015-08-06
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多