标签: androidx

关于appComponentFactory,AndroidX Build在发布模式下失败

我正在使用Android P并针对AndroidX进行编译.在debug/beta中运行良好,但是当我发布时,我在运行时遇到了一个神秘的崩溃:

2018-06-24 00:21:26.080 11971-11971 /?E/LoadedApk:无法实例appComponentFactory抛出java.lang.ClassNotFoundException:未找到路径类 "androidx.core.app.CoreComponentFactory":DexPathList [zip文件"/data/app/app.itsyour.elegantstocks-EuVZWdDgzplhm0Hpa90VwA= =/base.apk"],nativeLibraryDirectories = [/数据/应用/ app.itsyour.elegantstocks-EuVZWdDgzplhm0Hpa90VwA ==/LIB/86,/系统/ lib中]在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:126 )java.lang.ClassLoader.loadClass(ClassLoader.java:379)at java.lang.ClassLoader.loadClass(ClassLoader.java:312)at android.app.LoadedApk.createAppFactory(LoadedApk.java:226)at android.app .LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:731)在android.app.LoadedApk.getClassLoader(LoadedApk.java:772)在android.app.LoadedApk.getResources(LoadedApk.java:994)在android.app.ContextImpl.createAppContext(在android.app.ActivityThread.access $ 1000的android.app.ActivityThread.handleBindApplication(ActivityThread.java:5736)上的ContextImpl.java:2345(Activ)ityThread.java:197)在Android.os.Looper.loop(Looper.java)的android.app.Handler.dispatchMessage(Handler.java:106)上的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1634) :193)在android.app.ActivityThread.main(ActivityThread.java:6642)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java) :493)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)2018-06-24 00:21:26.145 1667-1854 /?E/SurfaceFlinger:ro.sf.lcd_density必须定义为构建属性2018-06-24 00:21:26.233 1667-1703 /?E/SurfaceFlinger:ro.sf.lcd_density必须定义为构建属性2018-06-24 00:21:29.627 1796-1913 /?E/TaskPersister:访问最近目录的文件错误(目录不存在?).2018-06-24 00:21:30.087 11971-11971 /?E/AndroidRuntime:FATAL EXCEPTION:main进程:app.itsyour.elegantstocks,PID:11971 java.lang.IllegalArgumentException:指定为非null的参数为null:方法cdbhb,参数$ receiver at app.itsyour.elegantstocks.aba(Unknown资料来源:2)app.itsyour.elegantstocks.feature.navigator.ba $ aa(未知来源:24)at app.itsyour.elegantstocks.feature.navigator.baa(未知来源:13)at app.itsyour.elegantstocks.feature .navigator.baa(未知来源:2)androidx.recyclerview.widget.RecyclerView $ aa(未知来源:0)androidx.recyclerview.widget.RecyclerView $ ab(未知来源:29)androidx.recyclerview.widget.RecyclerView $ pa(未知来源:39)在androidx.recyclerview.widget.RecyclerView $ pa(未知来源:510)在androidx.recyclerview.widget.RecyclerView $ pa(未知来源:5)在androidx.recyclerview.widget.RecyclerView $ pc (未知来源:1)在androidx.recyclerview.widget.LinearLayoutManager $ ca(未知来源:11)在androidx.recyclerview.widget.LinearLayoutManager.a(未知的酸)ce:0)androidx.recyclerview.widget.LinearLayoutManager.a(未知来源:44)在androidx.recyclerview.widget.RecyclerView.O的androidx.recyclerview.widget.LinearLayoutManager.c(未知来源:371)处(未知来源: 42)在androidx.recyclerview.widget.RecyclerView.q(未知来源:41)androidx.recyclerview.widget.RecyclerView.onLayout(未知来源:5)在android.view.View.layout(View.java:20670)at在android.view.View.View的android.widget.FrameLayout.onLayout(FrameLayout.java:261)的android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)的android.view.ViewGroup.layout(ViewGroup.java:6194) .layout(View.java:20670)位于android.view.Viewout上的android.view.Loutout.onLayout(未知来源:66)的android.view.ViewGroup.layout(ViewGroup.java:6194) .java:20670)在Android.widget.FrameLayout.onLayout(FrameLayout.java:261)的android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)的android.view.ViewGroup.layout(ViewGroup.java:6194)在androi 在android.view上的android.view.reshout(浏位于androidx.coordinatorlayout.wout上的android..coout.Loutout.(android.Co.:606),androidx.coordinatorlayout.widget.CoordinatorLayout.(未知来源:143).在androidx.coordinatorlayout.widget.CoordinatorLayout上的android.viewout(View.java:61670). a(未知来源:32)在Android.view.ViewGroup.layout(ViewGroup.java)的android.view.View.layout(View.java:20670)的androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(未知来源:48) :6194)在android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)的android.widget.FrameLayout.onLayout(FrameLayout.java:261)在android.view.View.layout(View.java:20670)在android .view.ViewGroup.layout(ViewGroup.java:6194)在android.widget.LinearLayout.setChildFrame(LinearLayout.java:1812)在android.widget.LinearLayout.layoutVertical(LinearLayout.java:1656)在android.widget.LinearL 在Android.widget.FrameLayout.layoutChildren(FrameLayout)的android.view.View.layout(ViewGroup.java:6194)的android.view.View.layout(View.java:20670)的ayout.onLayout(LinearLayout.java:1565) .java:323)在android.view.View.Loutout(ViewLayout.java:261)android.view.View.layout(View.java:20670)的android.view.View.layout(ViewGroup.java:6194)上的android.widget.FrameLayout.onLayout(FrameLayout.java:261)在android.widget.LinearLayout.setChildFrame(LinearLayout.java:1812)在android.widget.LinearLayout.layoutVertical(LinearLayout.java:1656)在android.widget.LinearLayout.onLayout(LinearLayout.java:1565)在android.view. View.layout(View.java:20670)在android.view.ViewGroup.layout(ViewGroup.java:6194)在android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)在android.widget.FrameLayout.onLayout(的FrameLayout .java:261)在com.android.internal.policy.DecorView.onLayout(DecorView.java:753)在android.view.View.layout(View.java:20670)2018-06-24 00:21:30.087 …

android mdc-components androidx

18
推荐指数
1
解决办法
1万
查看次数

AndroidX中的Snackbar包

迁移项目或在已迁移的分支之间切换时,Android Studio无法构建项目,因为它无法找到该android.support.design.widget.Snackbar程序包.删除了支持/设计包,但迁移表未列出此组件的正确新包.

android android-snackbar androidx

18
推荐指数
3
解决办法
6066
查看次数

为什么我的FloatingActionButton图标是黑色的?

以下是我正在使用的代码.我正在使用androidx.每个FAB都有一个黑色图标,即使它有白色.

mylayout.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <include layout="@layout/content_geral" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="24dp"
        app:backgroundTint="@color/colorPrimary"
        app:srcCompat="@drawable/ic_cloud_upload"
        tools:ignore="VectorDrawableCompat" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

style.xml

 <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

android android-layout androidx

18
推荐指数
4
解决办法
3606
查看次数

如何在Android中将TabLayout与ViewPager2一起使用

我想将com.google.android.material.tabs.TabLayout组件与Android的新ViewPager实现一起使用androidx.viewpager2.widget.ViewPager2。但是,setupWithViewPager(..)提供的方法TabLayout仅支持旧的ViewPager实现。有没有一种方法可以轻松地将a绑定TabLayoutViewPager2组件?

android android-tablayout androidx android-viewpager2

18
推荐指数
7
解决办法
6100
查看次数

ProXard的AndroidX构建问题

关闭

我们正在尝试将android库(正在编译android支持库)集成到已迁移到androidX的项目中.我们得到的原因不明

can't find referenced method 'void addOnTabSelectedListener(com.google.android.material.tabs.TabLayout$OnTabSelectedListener)' in program class com.google.android.material.tabs.TabLayout
Run Code Online (Sandbox Code Playgroud)

同时尝试启用proguard启用构建.

gradle-wrapper: 4.8

gradle build tools : 3.2.0

compileSdkVersion 28

编辑于2018年10月9日

出于某种原因,这是一个计划问题,proguard显示错误的错误,在我们对源代码进行了一些更改后,忘了向proguard添加一些类,它改变了我们忘记添加的类的错误.添加后,一切都很顺利.

android android-support-library androidx

17
推荐指数
1
解决办法
8627
查看次数

Google Auth迁移到androidx:SignInHubActivity不实现Lifecycle

迁移到AndroidX后,我面临以下问题与Google Auth lib:

在Android 9 API 28上:

java.lang.IncompatibleClassChangeError: Class 'com.google.android.gms.auth.api.signin.internal.SignInHubActivity' does not implement interface 'androidx.lifecycle.LifecycleOwner' in call to 'androidx.lifecycle.Lifecycle androidx.lifecycle.LifecycleOwner.getLifecycle()' (declaration of 'androidx.lifecycle.LiveData' appears in /data/app/fourbottles.bsg.workinghours4b-G1onPKgFFE-l3aqjx0qDJw==/split_lib_dependencies_apk.apk)
    at androidx.lifecycle.LiveData.observe(LiveData.java:172)
    at androidx.loader.app.LoaderManagerImpl$LoaderInfo.setCallback(LoaderManagerImpl.java:100)
    at androidx.loader.app.LoaderManagerImpl.createAndInstallLoader(LoaderManagerImpl.java:400)
    at androidx.loader.app.LoaderManagerImpl.initLoader(LoaderManagerImpl.java:421)
    at com.google.android.gms.auth.api.signin.internal.SignInHubActivity.zzn(Unknown Source:80)
    at com.google.android.gms.auth.api.signin.internal.SignInHubActivity.onActivityResult(Unknown Source:68)
    at android.app.Activity.dispatchActivityResult(Activity.java:7454)
    at android.app.ActivityThread.deliverResults(ActivityThread.java:4353)
    at android.app.ActivityThread.handleSendResult(ActivityThread.java:4402)
    at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Run Code Online (Sandbox Code Playgroud)

在Android 5.0.2 API 22上

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'androidx.lifecycle.Lifecycle$State …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-support-library androidx google-auth-library

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

未找到 AndroidX ActivityResultContracts 包/未找到类

根据谷歌的这份关于启动活动以获得结果的文档

虽然底层的 startActivityForResult() 和 onActivityResult() API 在所有 API 级别的 Activity 类上都可用,但强烈建议使用 AndroidX Activity 1.2.0-alpha02 和 Fragment 1.3.0-alpha02 中引入的 Activity Result API。

我想让我的用户从我的应用程序中拍摄照片并将该照片数据返回到我的应用程序。我打算使用旧的 startActivityForResult() 但是这个新方法看起来可以解决很多问题并且更可靠,所以我想试一试。我应该能够调用registerForActivityResult()并传递一个内置的合约来拍摄一张名为ActivityResultsContracts.TakePicture的照片:

this.registerForActivityResult(new ActivityResultContracts.TakePicture(), ...);
Run Code Online (Sandbox Code Playgroud)

但我得到: error: package ActivityResultContracts does not exist

我已将此添加到我的 app/build.gradle 中:

// original include
//implementation 'androidx.appcompat:appcompat:1.1.0'

// suggestion from Google documentation
//implementation 'androidx.appcompat:appcompat:1.2.0-alpha02'

// AndroidStudio suggested a newer version was available
implementation 'androidx.appcompat:appcompat:1.2.0-beta01'
Run Code Online (Sandbox Code Playgroud)

我尝试了alpha02beta01并且它们似乎都没有文档中提到的类。

当我尝试在我的 java 文件顶部手动导入类时,AndroidStudio 也不认为该包存在。应该是androidx.activity.result.contract.ActivityResultContracts.TakePicture,但这是我看到的:

导入语句中 Android Studio 自动完成包列表的屏幕截图

如果这很重要,我正在使用 gradle 3.5.3。(每当我尝试升级到最新的 gradle …

android android-appcompat android-gradle-plugin androidx

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

无法使用 Dagger Hilt `@WorkerInject` 注入 Android WorkManager Worker

我正在尝试遵循https://developer.android.com/training/dependency-injection/hilt-jetpack#workmanager 中的指南并遇到以下错误

E/WM-WorkerFactory: Could not instantiate com.example.android.hilt.ExampleWorker
    java.lang.NoSuchMethodException: <init> [class android.content.Context, class androidx.work.WorkerParameters]
Run Code Online (Sandbox Code Playgroud)

为了重现该问题,我在Dagger Hilt Example Repo 中添加了指南中的示例代码

E/WM-WorkerFactory: Could not instantiate com.example.android.hilt.ExampleWorker
    java.lang.NoSuchMethodException: <init> [class android.content.Context, class androidx.work.WorkerParameters]
Run Code Online (Sandbox Code Playgroud)

注意:AppNavigatorNavigationModule 中作为 @Binds abstract fun bindNavigator(impl: AppNavigatorImpl): AppNavigator.
另请注意,替换AppNavigatorAppDatabasewhich is@Singleton无济于事。

这就是我开始工作的方式 MainActivity

class ExampleWorker @WorkerInject constructor(
    @Assisted appContext: Context,
    @Assisted workerParams: WorkerParameters,
    val workerDependency: AppNavigator
) : Worker(appContext, workerParams) {
    override fun doWork(): Result {
        Log.d("WORKER", …
Run Code Online (Sandbox Code Playgroud)

android androidx dagger-hilt

17
推荐指数
1
解决办法
4385
查看次数

迁移到AndroidX后,错误膨胀了类android.support.design.widget.AppBarLayout

使用Android Studio将项目迁移到AndroidX(并手动修复了很多导入错误)后,我没有遇到编译错误,但是当应用启动时,我崩溃了:

Error inflating class android.support.design.widget.AppBarLayout

布局文件中有问题的行是: <android.support.design.widget.AppBarLayout

我的依赖项build.gradle是:

dependencies {
    def lifecycle_version = '2.1.0-alpha02'
    // used below--will be different for androidx (migrated 2019-02-04)
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

    implementation 'androidx.coordinatorlayout:coordinatorlayout:1.0.0'

    implementation 'com.google.android.material:material:1.1.0-alpha03'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.2-alpha01'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.2-alpha01'
    implementation 'com.squareup.okhttp3:okhttp:3.11.0'
    implementation 'com.squareup.okio:okio:1.15.0'
    implementation 'io.reactivex.rxjava2:rxjava:2.2.5'
    implementation 'com.jakewharton.rxrelay2:rxrelay:2.1.0'
    // Relay class
    implementation 'com.jakewharton.rx2:replaying-share:2.1.0'
    // ReplayingShare
    implementation 'com.jakewharton.rxbinding2:rxbinding:2.2.0'
    // RxBinding
    implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"  // see def above
    // includes ViewModel and LiveData …
Run Code Online (Sandbox Code Playgroud)

android android-appbarlayout androidx

16
推荐指数
4
解决办法
2万
查看次数

如何使用activityScenarioRule&lt;Activity&gt;?

我在这里遵循开发指南:

https://developer.android.com/guide/components/activities/testing

并有一个测试类,如:

@RunWith(AndroidJUnit4::class)
class MyTestSuite {
   @get:Rule var activityScenarioRule = activityScenarioRule<MyActivity>()

   @Test fun testEvent() {
    val scenario = activityScenarioRule.scenario
   }
}
Run Code Online (Sandbox Code Playgroud)

该方法activityScenarioRule<T>()未定义。我需要什么依赖?另外,在阅读这些文档时确定要添加哪些依赖项的最佳方法是什么?

android androidx

16
推荐指数
2
解决办法
5804
查看次数