android - Android软件包名称Dex问题

标签 android gradle dex

我正在尝试创建一个程序包名称为“ com.cvs.myapp ”的应用程序。应用可完美构建,但在运行时会在设备中崩溃。

    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.cvs.myapp/com.cvs.myapp.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.cvs.myapp.MainActivity" on path: DexPathList[[zip file "/data/app/com.cvs.myapp-DG6fxWRjVXjsKQV_vwJwAw==/base.apk"],nativeLibraryDirectories=[/data/app/com.cvs.myapp-DG6fxWRjVXjsKQV_vwJwAw==/lib/x86, /system/lib]]
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2843)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        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)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.cvs.myapp.MainActivity" on path: DexPathList[[zip file "/data/app/com.cvs.myapp-DG6fxWRjVXjsKQV_vwJwAw==/base.apk"],nativeLibraryDirectories=[/data/app/com.cvs.myapp-DG6fxWRjVXjsKQV_vwJwAw==/lib/x86, /system/lib]]
        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.AppComponentFactory.instantiateActivity(AppComponentFactory.java:69)
        at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:41)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1215)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2831)

这只是一个新项目,没有其他仅包含MainActivity类的添加项。如果将包重命名为“com.demo.myapp”,则相同的新项目将起作用。

使用Analyze APK,我可以看到classes.dex文件不包含MainActivity。是“cvs”这个名称引起了这个问题,因为它可以与其他任何名称完美配合使用吗?

gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
build.gradle(项目)
classpath 'com.android.tools.build:gradle:3.6.3'
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.cvs.myapp">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name="com.cvs.myapp.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

最佳答案

正如您提到的那样,这是在使用当前最新的3.6.3的Gradle时发生的,它具有新的打包工具ZipFlinger,这可能会导致问题,请尝试以下代码将其禁用

android.useNewApkCreator=false

而且我有一些相关的链接,请看看。

https://issuetracker.google.com/issues/150198184

After upgrading to android 3.6.1 apk cant be installed on devices

Android App runtime crash after update gradle plugin 3.6

MultiDex problem with Android Studio 3.6 when implementing it the right way

关于android - Android软件包名称Dex问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61396910/

相关文章:

java - 每次更改src/main/resources下的属性文件时,都必须重新构建Jar

android - URI未在资源文件中注册

android - 任务 ':app:transformClassesAndResourcesWithR8ForDebug'的执行失败

android - WebView.draw(canvas) 有时会在某些设备上的 Android Lollipop 5.0+ 中崩溃 - 致命信号 11 (SIGSEGV)

android - 如何将复选框绑定(bind)到图像

android - 无法执行 dex : Multiple dex files define Lcom/google/android/gcm/GCMBaseIntentService;

android - 无法验证dex文件乱序的注解_元素名_idx

android - 计算库(Jar/AAR)中的方法数

android - 部分重绘 -> 无效(矩形 矩形)

java - 服务以错误的时间间隔执行短信