相关疑难解决方法(0)

所有com.android.support库必须使用完全相同的版本规范

更新到android studio 2.3后,我收到此错误消息.我知道这只是一个暗示,因为应用程序正常运行,但它真的很奇怪.

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃).找到的版本25.1.1,24.0.0.示例包括com.android.support:animated-vector-drawable:25.1.1和com.android.support:mediarouter-v7:24.0.0

在此输入图像描述

我的朋友:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testCompile 'junit:junit:4.12'

    compile 'com.android.support:appcompat-v7:25.1.1'
    compile 'com.android.support:support-v4:25.1.1'
    compile 'com.android.support:design:25.1.1'
    compile 'com.android.support:recyclerview-v7:25.1.1'
    compile 'com.android.support:cardview-v7:25.1.1'
    compile 'com.google.android.gms:play-services-maps:10.2.0'
    compile 'com.google.android.gms:play-services:10.2.0'

    compile 'io.reactivex.rxjava2:rxjava:2.0.1'
    compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
    compile 'com.jakewharton:butterknife:8.4.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
    compile 'com.blankj:utilcode:1.3.6'
    compile 'com.orhanobut:logger:1.15'
    compile 'com.facebook.stetho:stetho:1.4.2'

    provided 'com.google.auto.value:auto-value:1.2'
    annotationProcessor 'com.google.auto.value:auto-value:1.2'
    annotationProcessor 'com.ryanharter.auto.value:auto-value-parcel:0.2.5'

    compile 'com.mikepenz:iconics-core:2.8.2@aar'
    compile('com.mikepenz:materialdrawer:5.8.1@aar') { transitive = true }
    compile 'com.mikepenz:google-material-typeface:2.2.0.3.original@aar'
    compile 'me.zhanghai.android.materialprogressbar:library:1.3.0'
    compile 'com.github.GrenderG:Toasty:1.1.1'
    compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.8.0'
    compile 'com.github.MAXDeliveryNG:slideview:1.0.0'

    compile 'com.facebook.fresco:fresco:1.0.1'
    compile 'com.github.bumptech.glide:glide:3.7.0'

    compile 'com.google.maps.android:android-maps-utils:0.4.4' …
Run Code Online (Sandbox Code Playgroud)

android build.gradle

775
推荐指数
35
解决办法
36万
查看次数

android.view.InflateException扩展类android.webkit.WebView时出错

我有这个试图杀了我的问题.

在Lollipop(API 22)中,每次在我的应用程序中我都会显示webview,应用程序崩溃了.我的android开发者控制台中有多个与此事件相关的崩溃.

无需说它适用于Android 4,6和7.

阅读堆栈跟踪(在本文末尾发布),有些东西让我感到困惑

Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x2040003
Run Code Online (Sandbox Code Playgroud)

我在生成的R.java中搜索没有任何运气,显然是因为ID不存在,但值得一试.

谷歌搜索问题似乎与棒棒糖处理webview的方式有关.我根据我在GDC的崩溃记者找到的设备开始使用棒棒糖的新AVD,我可以重现这个问题.

请帮我!


完整堆栈跟踪:

android.view.InflateException: Binary XML file line #7: Error inflating class android.webkit.WebView
                  at android.view.LayoutInflater.createView(LayoutInflater.java:633)
                  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
                  at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
                  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
                  at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
                  at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
                  at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
                  at it.artecoop.ibreviary.WebViewFragment.onCreateView(WebViewFragment.java:67)
                  at android.support.v4.app.Fragment.performCreateView(Fragment.java:2087)
                  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1113)
                  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1295)
                  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801)
                  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1682)
                  at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:541)
                  at android.os.Handler.handleCallback(Handler.java:739)
                  at android.os.Handler.dispatchMessage(Handler.java:95)
                  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)
               Caused by: java.lang.reflect.InvocationTargetException
                  at java.lang.reflect.Constructor.newInstance(Native Method)
                  at java.lang.reflect.Constructor.newInstance(Constructor.java:288) …
Run Code Online (Sandbox Code Playgroud)

java android webview

48
推荐指数
11
解决办法
7933
查看次数

将 Android kotlin 版本升级到 1.5.0 在构建时抛出错误消息

使用 kotlin 版本“1.4.32”运行我的 Android 项目运行和构建。尝试升级到 kotlin '1.5.0' 并且我的构建抛出:

Execution failed for task ':app:kaptDefaultsDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
   > java.lang.reflect.InvocationTargetException (no error message)
Run Code Online (Sandbox Code Playgroud)

我什至不知道从哪里开始寻找。还有其他人在升级到 kotlin 1.5.0 时遇到问题吗?

android kotlin

42
推荐指数
7
解决办法
8682
查看次数

实现'com.android.support:appcompat-v7:28.0.0'

我正在通过app编程移动我的第一步.

我搜索了与此事有关的其他主题并尝试了所有的解决方案,但它仍然让我发疯:

在Android Studio上构建我无法通过此错误来解决

implementation 'com.android.support:appcompat-v7:28.0.0' :

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃).

找到的版本28.0.0,26.1.0.

例子包括

com.android.support:animated-vector-drawable:28.0.0

com.android.support:support-v4:26.1.0

有些库或工具和库的组合不兼容,或者可能导致错误.一个这样的不兼容性是使用不是最新版本的Android支持库版本(或者特别是低于targetSdkVersion的版本)进行编译.

如果我用命令"noinspection"忽略它,那么apk就不会在我的手机上运行.我尝试在示例行中添加一些依赖项,但它在上面显示的这一点上不起作用,因为如果添加"支持版本4:26.1.0它告诉我它不是最新的,如果我升级它写7: 28.0.0它也不起作用.

有人可以帮我吗?感谢您的时间!

编辑:这是我的build.gradle https://www.dropbox.com/sh/1vjmrh196bdy5gn/AADW-DG1YB10s-Csw_UrZtuYa?dl=0

我在下面应用了建议(谢谢!!)并且错误不再显示,但我的应用程序仍然在模拟器和我的设备(galaxy a6 +)中崩溃.

android android-support-library build.gradle

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

如何在 Android Studio 项目中查找哪些文件正在使用特定的外部库

问题

在 Android Studio 项目的项目视图中的“外部库”下,我有这些库“stax-stax-api:1.0.1@jar”和“xpp3:xpp3:1.1.3.3@jar”。他们给我带来了问题,以至于我无法构建项目。我似乎无法弄清楚它们是如何到达那里的,或者它们被在哪里使用。

在此处输入图片说明

在此处输入图片说明

我现在构建时收到的错误消息是:

"错误:错误:xpp3 定义的类与 Android 现在提供的类冲突。解决方案包括寻找更新版本或没有相同问题的替代库(例如,对于 httpclient 使用 HttpUrlConnection 或 okhttp),或重新打包库使用类似 jarjar 的东西。[DuplicatePlatformClasses]

错误消息很好,只是它没有告诉我首先是谁在使用这个库。

问题

有没有一种简单的方法可以找出它们在项目中的使用位置?或者甚至是一种简单但不需要查看每个文件的方法?这是一个包含大量文件的多模块项目。如果我可以删除它们,这会告诉我,但没有删除选项。

这可能是我忽略的非常简单的事情。任何帮助表示赞赏。很高兴根据要求添加更多信息。

我试过的

我试过“分析依赖关系”,但它没有显示我可以看到的任何引用。

更新:我忘了提到我也尝试过,./gradlew app:dependencies但它只告诉我我的项目依赖于这些库。我已经知道了。有没有办法获得一些更具体的信息,以便我可以删除库?

更新 2:接受的答案确实有效,但我需要重定向控制台输出。

android intellij-idea android-gradle-plugin

6
推荐指数
1
解决办法
5094
查看次数

带Multidex和Kitkat的Okhttp.Builder中的ExceptionInInitializerError

我在ExceptionInInitializerError启用Multidex 的情况下运行Kitkat 4.4.2的VM上遇到异常。

java.lang.ExceptionInInitializerError
    at okhttp3.OkHttpClient.newSslSocketFactory(OkHttpClient.java:263)
    at okhttp3.OkHttpClient.<init>(OkHttpClient.java:229)
    at okhttp3.OkHttpClient$Builder.build(OkHttpClient.java:1015)
    at myapp.utils.Utils.getHttpClientBuilder(Utils.java:131)
    at myapp.fragments.FragmentHome.getHome(FragmentHome.java:326)
    at 
myapp.fragments.FragmentHome.onViewCreated(FragmentHome.java:135)
Run Code Online (Sandbox Code Playgroud)

我有以下库:

implementation 'jp.wasabeef:recyclerview-animators:3.0.0'
implementation 'com.ashokvarma.android:bottom-navigation-bar:2.1.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.ogaclejapan.smarttablayout:utils-v4:2.0.0@aar'
implementation 'com.duolingo.open:rtl-viewpager:1.0.3'
implementation 'com.squareup.retrofit2:retrofit-converters:2.5.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.14.1'
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
implementation 'com.karumi:dexter:5.0.0'
implementation 'com.nineoldandroids:library:2.4.0'
implementation 'org.jsoup:jsoup:1.11.3'
implementation 'saschpe.android:customtabs:2.0.0'
Run Code Online (Sandbox Code Playgroud)

我正在使用此代码创建改造连接

Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(Constants.API_LINK)
            .addConverterFactory(GsonConverterFactory.create())
            .client(Utils.getHttpClientBuilder())
            .build();
Run Code Online (Sandbox Code Playgroud)

并使用此代码获取构建器的实例

public static OkHttpClient getHttpClientBuilder(){
    return new OkHttpClient.Builder()
            .readTimeout(60, TimeUnit.SECONDS)
            .connectTimeout(60, TimeUnit.SECONDS)
            .addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY))
            .build();
}
Run Code Online (Sandbox Code Playgroud)

getHttpClientBuilder()方法中调用“ build()”时会发生异常。

我还在AndroidManifest.xml中分配了一个默认应用程序,它进行了扩展MultiDexApplication并包含MultiDex.install(this);在中onCreate(Bundle bundle) …

java android retrofit2 okhttp3

6
推荐指数
2
解决办法
630
查看次数

Androidx迁移后未解决的参考R.

在Gradle脚本中更新build.gradle(Module:app)中的依赖项之后,我的所有布局,字符串,R定义的所有引用都不可用.我在Module app中有以下代码:

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex')) {
                details.useVersion "28.0.0"
            }

            if(details.requested.group == 'androidx.lifecycle'  && !details.requested.name.contains('multidex'))
            {
                details.useVersion "2.0.0"
            }

        }
    }
}

dependencies 
{


 implementation 'androidx.test:runner:1.1.0'
    implementation 'androidx.test.espresso:espresso-core:3.1.0'
        //    androidTestImplementation 'com.android.support.test:runner:1.0.2'
        //    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

    // lifecycle components
    implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
    implementation 'androidx.lifecycle:lifecycle-viewmodel:2.0.0'
    implementation 'androidx.lifecycle:lifecycle-livedata-core:2.0.0'
    kapt 'androidx.lifecycle:lifecycle-compiler:2.0.0'

    //    implementation 'android.arch.lifecycle:extensions:1.1.1'
    //    kapt "android.arch.lifecycle:compiler:1.1.1"

    // room components
        //    implementation 'android.arch.persistence.room:runtime:1.1.1'
    implementation 'androidx.room:room-runtime:2.0.0'

    //    data binding components
    annotationProcessor "com.android.databinding:compiler:3.1.4"
    implementation 'io.reactivex.rxjava2:rxjava:2.2.2'
    implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
    implementation …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-gradle-plugin androidx

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

Android Flavor 特定的依赖树

我的 Android 应用程序有多种风格:ProductionStagingReview等,以及ReleaseDebug构建类型。当我运行./gradlew app:dependencies它时,它自然会返回一个具有每种风格/构建类型的依赖树:

  • 生产发布
  • 生产调试
  • 分期发布
  • 登台调试
  • 等等。

这导致依赖树超过 32000 行,使其有点难以评估。我正在寻找的是一个依赖命令,我可以在其中指定风格和构建类型以避免出现可怕的依赖树报告,例如:

./gradlew app:stagingDebugDependencies

非常感谢任何帮助、提示和/或提示。

android gradle android-studio dependency-tree

2
推荐指数
1
解决办法
382
查看次数