标签: androidx

找不到AndroidX MultiDex

我正在创建一个新的android项目,并决定将新的AndroidX替换为支持库,有关支持的文档,请参见:https : //developer.android.com/jetpack/androidx/migrate

我按照字母的步骤进行操作,并在同步gradle之后,可以访问androidx名称空间和其中包含的各种类。但是,在创建我的应用程序类时,我想从中继承androidx.multidex.MultiDexApplication(可以在上面的链接的表中看到)。但是,整个multidex软件包不存在。

有人解决了这个问题吗?有指针吗?

android android-multidex androidx

11
推荐指数
2
解决办法
5901
查看次数

Dagger 2 androidx片段不兼容类型

我正在使用Dagger 2.21,而当我尝试这样做时

@Module
internal abstract class FragmentModule {
    @ContributesAndroidInjector
    internal abstract fun loginFragment() : LoginFragment
}
Run Code Online (Sandbox Code Playgroud)

@Singleton
@Component(modules = [AndroidSupportInjectionModule::class, AppModule::class, ActivityModule::class, ViewModelBuilder::class, ViewModelModule::class, RepositoriesModule::class, ApiModule::class, FragmentModule::class])
interface AppComponent : AndroidInjector<PhotocoApplication> {
    @Component.Builder
    abstract class Builder : AndroidInjector.Builder<PhotocoApplication>()
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

/app/build/generation/source/kapt/debug/com/photoco/app/injection/module/FragmentModule_LoginFragment$app_debug.java:18:错误:不兼容的类型:类LoginFragment无法转换为类扩展Fragment

我一直在搜索,发现使用2.21并将其设置为可以正常工作,但还没有运气

android.useAndroidX = true; android.enableJetifier = true

LoginFragment扩展:

dagger.android.support.DaggerFragment()

由于所有这些设置无法构建,我在这里缺少什么吗?我可以使用DaggerActivity使其与Activity一起使用,但不能与Fragments一起使用。

PhotocoApplication扩展了dagger.android.support.DaggerApplication

谢谢!

android dependency-injection kotlin dagger-2 androidx

11
推荐指数
1
解决办法
1381
查看次数

找不到满足版本限制的'androidx.arch.core:core-common'版本

如果添加以下行,则在创建新的Android Studio项目(“空活动”类型)后:

    // Lifecycle/View Models
    def lifecycleVersion = '2.0.0'
    implementation "androidx.lifecycle:lifecycle-extensions:$lifecycleVersion"
    annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycleVersion"

    // Core testing
    def coreTestingVersion = '2.0.1'
    testImplementation "androidx.arch.core:core-testing:$coreTestingVersion"
    androidTestImplementation "androidx.arch.core:core-testing:$coreTestingVersion"
Run Code Online (Sandbox Code Playgroud)

对于应用程序的build.gradle文件,当您尝试运行connectedCheck项目任务时会看到错误。查看输出:

Zachs-MBP:CoreTestingVersionExample Zach$ ./gradlew connectedCheck

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':app:preDebugAndroidTestBuild'.
> Could not resolve all task dependencies for configuration ':app:debugAndroidTestRuntimeClasspath'.
   > Could not resolve androidx.arch.core:core-common:2.0.0.
     Required by:
         project :app
      > Cannot find a version of 'androidx.arch.core:core-common' that satisfies the …
Run Code Online (Sandbox Code Playgroud)

android android-gradle-plugin androidx

11
推荐指数
1
解决办法
1705
查看次数

将React Native升级到0.60-RC2后找不到库“ libjsc.so”

我已经将React Native更新为0.60-RC2,使用Android Studio折射器迁移到AndroidX并使用了此处提到的喷射器:https : //github.com/react-native-community/discussions-and-proposals/issues/129

完成此操作后,我library "libjsc.so" not found在运行时收到错误消息react-native run-android。运行发行版APK时出现相同错误。

stacktrace是:

06-24 15:55:01.823  8579  8656 E SoLoader: Error when loading lib: dlopen failed: library "libjsc.so" not found lib hash: 83f1717c1dc187d9f252a9f1fc66d430 search path is /data/app/com.jtv.testapp-4hvCKbqEmbyyOPykuQhm4Q==/lib/arm
06-24 15:55:01.823  8579  8656 E SoLoader: couldn't find DSO to load: libjscexecutor.so caused by: dlopen failed: library "libjsc.so" not found
06-24 15:55:01.825  8579  8656 E AndroidRuntime: FATAL EXCEPTION: create_react_context
06-24 15:55:01.825  8579  8656 E AndroidRuntime: Process: com.jtv.testapp, PID: 8579
06-24 15:55:01.825 …
Run Code Online (Sandbox Code Playgroud)

android gradle android-gradle-plugin react-native androidx

11
推荐指数
4
解决办法
2489
查看次数

Android Test Orchestrator无法使用Android X.

我最近迁移了我的项目以使用AndroidX,并使用以下文档在gradle上为我的espresso测试配置了测试编排器:

https://developer.android.com/training/testing/junit-runner#using-android-test-orchestrator

我有依赖:

androidTestUtil 'androidx.test:orchestrator:1.1.0-beta01'
Run Code Online (Sandbox Code Playgroud)

但是,我没有执行任何测试,看起来他们在运行gradle时失败运行以下adb shell命令,即:

adb shell 'CLASSPATH=$(pm path android.support.test.services) app_process / \
  android.support.test.services.shellexecutor.ShellMain am instrument -w -e \
  targetInstrumentation com.example.test/androidx.test.runner.AndroidJUnitRunner \
  android.support.test.orchestrator/.AndroidTestOrchestrator'
Run Code Online (Sandbox Code Playgroud)

从上面看:似乎它试图用android支持版本而不是androidx版本执行此命令.

似乎没有记录什么用于androidx.

android android-testing android-espresso androidx androidx-test

10
推荐指数
1
解决办法
2284
查看次数

在相对布局中向芯片组添加水平滚动

我在一个组中创建了几个静态芯片。我正在使用此链接 ( https://material.io/design/components/chips.html# ) 作为参考。代码如下:

<RelativeLayout
        android:id="@+id/inputLayout"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_alignParentBottom="true"
        android:background="@android:color/white"
        android:gravity="bottom"
        android:paddingStart="8dp"
        android:paddingTop="8dp"
        android:paddingEnd="8dp"
        android:paddingBottom="9dp">

        <ImageView
            android:id="@+id/sendBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:paddingTop="4dp"
            app:srcCompat="@drawable/chatbot_send_btn" />

        <EditText
            android:id="@+id/queryEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_toStartOf="@+id/sendBtn"
            android:imeOptions="actionSend"
            android:inputType="text"
            android:paddingTop="4dp"
            android:textSize="18sp" />

        <com.google.android.material.chip.ChipGroup
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:layout_above="@id/queryEditText">

            <com.google.android.material.chip.Chip
                style="@style/Widget.MaterialComponents.Chip.Choice"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="wsfdsd" />

            <com.google.android.material.chip.Chip
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="wsfdsd"
                style="@style/Widget.MaterialComponents.Chip.Choice"/>

            <com.google.android.material.chip.Chip
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="wsfdsd"
                style="@style/Widget.MaterialComponents.Chip.Choice"/>

            <com.google.android.material.chip.Chip
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="wsfdsd"
                style="@style/Widget.MaterialComponents.Chip.Choice"/>

            <com.google.android.material.chip.Chip
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="wsfdsd"
                style="@style/Widget.MaterialComponents.Chip.Choice"/>

            <com.google.android.material.chip.Chip
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="wsfdsd" />

        </com.google.android.material.chip.ChipGroup>

    </RelativeLayout>  
Run Code Online (Sandbox Code Playgroud)

这不会显示所有芯片,它只显示 1 个芯片。如何添加水平滚动?我是否需要动态显示筹码以便我可以添加水平滚动?

android material-design android-chips androidx

10
推荐指数
2
解决办法
7627
查看次数

我如何解决颤振上的“simple_permissions”错误?

在 flutter 项目上运行包含 simple_permissions 的代码时出现错误。

Initializing gradle...
Resolving dependencies...
Running Gradle task 'assembleDebug'...
C:\Users\ria\Downloads\flutter_windows_v1.2.1-stable\flutter\.pub-cache\hosted\pub.dartlang.org\simple_permissions-0.1.9\android\src\main\java\com\ethras\simplepermissions\SimplePermissionsPlugin.java:9: error: cannot find symbol
import android.support.v4.app.ActivityCompat;
                             ^
  symbol:   class ActivityCompat
  location: package android.support.v4.app
C:\Users\ria\Downloads\flutter_windows_v1.2.1-stable\flutter\.pub-cache\hosted\pub.dartlang.org\simple_permissions-0.1.9\android\src\main\java\com\ethras\simplepermissions\SimplePermissionsPlugin.java:10: error: package android.support.v4.content does not exist
import android.support.v4.content.ContextCompat;
                                 ^
C:\Users\ria\Downloads\flutter_windows_v1.2.1-stable\flutter\.pub-cache\hosted\pub.dartlang.org\simple_permissions-0.1.9\android\src\main\java\com\ethras\simplepermissions\SimplePermissionsPlugin.java:156: error: cannot find symbol
        ActivityCompat.requestPermissions(activity, perm, 0);
        ^
  symbol:   variable ActivityCompat
  location: class SimplePermissionsPlugin
C:\Users\ria\Downloads\flutter_windows_v1.2.1-stable\flutter\.pub-cache\hosted\pub.dartlang.org\simple_permissions-0.1.9\android\src\main\java\com\ethras\simplepermissions\SimplePermissionsPlugin.java:163: error: cannot find symbol
        return PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(activity, permission);
                                                    ^
  symbol:   variable ContextCompat
  location: class SimplePermissionsPlugin
C:\Users\ria\Downloads\flutter_windows_v1.2.1-stable\flutter\.pub-cache\hosted\pub.dartlang.org\simple_permissions-0.1.9\android\src\main\java\com\ethras\simplepermissions\SimplePermissionsPlugin.java:171: error: cannot find symbol
            if (ActivityCompat.shouldShowRequestPermissionRationale(registrar.activity(), permission)) {
                ^
  symbol: …
Run Code Online (Sandbox Code Playgroud)

plugins android-studio flutter androidx

10
推荐指数
1
解决办法
4671
查看次数

迁移到AndroidX后,启动时发生异常:java.lang.ClassNotFoundException:“找不到类androidx.core.app.CoreComponentFactory”

迁移到AndroidX后,我在启动时遇到以下异常:

LoadedApk: Unable to instantiate appComponentFactory
    java.lang.ClassNotFoundException: Didn't find class               "androidx.core.app.CoreComponentFactory" on path: DexPathList[[],nativeLibraryDirectories=[/data/app/com.apps.entertainmentsolutions.offhole-yUKw5A4ysDVrPyO-DpnhKg==/lib/arm64, /system/lib64, /system/vendor/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at android.app.LoadedApk.createAppFactory(LoadedApk.java:217)
        at android.app.LoadedApk.updateApplicationInfo(LoadedApk.java:329)
        at android.app.ActivityThread.handleDispatchPackageBroadcast(ActivityThread.java:5410)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1743)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at com.android.server.SystemServer.run(SystemServer.java:460)
        at com.android.server.SystemServer.main(SystemServer.java:300)
        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:838)
Run Code Online (Sandbox Code Playgroud)

我正在Windows 10中使用Android Studio 3.4.1。

我尝试了所有可以找到的解决方案,但问题仍然存在:

API 28(P)的Android设计支持库不起作用

关于appComponentFactory的AndroidX构建在发布模式下失败

我添加了-keep类androidx.core.app.CoreComponentFactory {*; }到proguard-rules.pro,我在gradle.properties中添加了android.useAndroidX = true和android.enableJetifier = true ...清理,重建,使chach无效并重新启动...

也禁用即时运行...

另一个奇怪的事实是,我可以从其他类中导入没有问题的类(导入androidx.core.app.CoreComponentFactory;)。

我的gradle文件。项目gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

    buildscript { …
Run Code Online (Sandbox Code Playgroud)

migration android exception androidx

10
推荐指数
1
解决办法
1804
查看次数

WorkManager - 当我们同时使用默认初始化和自定义初始化时,我们是否应该删除默认初始化程序?

当我将 WorkManager 从“2.2.0”升级到“2.3.0-rc01”时,出现以下新错误

当我导出 APK 时发生错误。

C:\app: Error: Remove androidx.work.impl.WorkManagerInitializer from your AndroidManifest.xml when using on-demand initialization. [RemoveWorkManagerInitializer]

   Explanation for issues of type "RemoveWorkManagerInitializer":
   If an android.app.Application implements
   androidx.work.Configuration.Provider,
   the default androidx.work.impl.WorkManagerInitializer needs to be removed
   from the
   AndroidManifest.xml file.
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我在 2.2.0 中没有收到这样的错误,因为从 2.1.0 开始引入了“按需初始化”。

根据https://developer.android.com/topic/libraries/architecture/workmanager/advanced/custom-configuration#remove-default

我不确定将以下内容包含在我的AndroidManifest.xml.

<provider
    android:name="androidx.work.impl.WorkManagerInitializer"
    android:authorities="${applicationId}.workmanager-init"
    tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)

目前,以下是我的Application班级。

MyApplication 类

public class MyApplication extends MultiDexApplication implements Configuration.Provider {
    private static MyApplication me;

    @Override
    public void onCreate() {
        super.onCreate();

        me = …
Run Code Online (Sandbox Code Playgroud)

android android-workmanager androidx

10
推荐指数
3
解决办法
2945
查看次数

如何将 registerForActivityResult 与 androidx.fragment.app.Fragment 一起使用?

 ActivityResultLauncher<Intent> launcherImportFileSelection = requireActivity().registerForActivityResult(...
Run Code Online (Sandbox Code Playgroud)

如果上面的代码放在onCreate(Bundle savingInstanceState)中,会抛出以下异常:

Exception: LifecycleOwner MyActivity@868498a is attempting to register while current state is RESUMED. LifecycleOwners must call register before they are STARTED.
Run Code Online (Sandbox Code Playgroud)

如果将其放置在构造函数中或作为声明,则 requireActivity() 会抛出以下异常:

java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
2021-04-17 15:15:41.948 27930-27930/net.biyee.onvifer E/AndroidRuntime:     at androidx.fragment.app.Fragment.instantiate(Fragment.java:613)
            ... 42 more
     Caused by: java.lang.IllegalStateException: Fragment MyFragment{fba6d22} (e0d1f006-996d-4051-9839-4575a92e33dd) not attached to an activity.
        at androidx.fragment.app.Fragment.requireActivity(Fragment.java:928)
Run Code Online (Sandbox Code Playgroud)

我在 build.gradle 中有以下内容:

implementation 'androidx.fragment:fragment:1.3.2'
Run Code Online (Sandbox Code Playgroud)

有人可以提供这方面的建议吗?

更新:

问题已经解决了。请参阅我与@CommmonsWare 的交流

android androidx

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