无法实例化活动组件信息类未找到异常Android [英] Unable to instantiate activity Component Info Class Not found exception Android
问题描述
我的应用程序毫无例外地直接部署到任何设备上。但是,安装.apk时,它将引发以下异常。其次,它在Nougat 7.0及更高版本上运行良好,但在较低的OS版本(如5.0和6.0)下崩溃并具有相同的例外。等。发生异常的原因是什么?
My app is deployed directly to any device without any exception. But when .apk is installed it throws the following exception. Secondly it runs fine with Nougat 7.0 and above versions but crashes with same exception for lower OS Versions like 5.0 and 6.0. etc. What is the reason for exception ?
Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="amitechnologies.products.apps.equalizeraudioplayer.v3" >
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.BATTERY_STATS" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name="amitechnologies.products.apps.equalizeraudioplayer.v3.view.LoaderOfAllMediaFiles"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="amitechnologies.products.apps.equalizeraudioplayer.v3.view.MainActivity"
android:screenOrientation="sensorPortrait"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:label="@string/app_name" >
</activity>
</application>
</manifest>
Build.gradle:
apply plugin: 'com.android.application'
android {
signingConfigs {
config {
keyAlias 'm-zaes'
keyPassword 'm-zaes'
storeFile file('D:/AMI_Repo/AMI_Designer/Targets/Android/AMI 3d Player v3/keystore.jks')
storePassword 'm-zaes'
}
}
compileSdkVersion 25
buildToolsVersion "25.0.1"
useLibrary 'org.apache.http.legacy'
defaultConfig {
applicationId "amitechnologies.products.apps.equalizeraudioplayer.v3"
minSdkVersion 17
targetSdkVersion 25
versionCode 1
versionName "1.1"
signingConfig signingConfigs.config
// Enabling multidex support.
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFile 'D:/AMI_Repo/AMI_Designer/Targets/Android/AMI 3d Player v3/app/proguard-android.txt'
signingConfig signingConfigs.config
}
}
sourceSets {
main {
jniLibs.srcDir 'jniLibs'
}
}
repositories {
maven { url "https://jitpack.io" }
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.google.android.gms:play-services-ads:10.2.4'
compile 'com.google.apis:google-api-services-youtube:v3-rev180-1.22.0'
compile 'com.android.support:multidex:1.0.1'
//glide
compile 'com.github.bumptech.glide:glide:3.7.0'
// CardView
compile 'com.android.support:cardview-v7:25.3.1'
}
productFlavors {
}
}
dependencies {
}
和堆栈跟踪为
Process: amitechnologies.products.apps.equalizeraudioplayer.v3, PID: 15548
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{amitechnologies.products.apps.equalizeraudioplayer.v3/amitechnologies.products.apps.equalizeraudioplayer.v3.view.LoaderOfAllMediaFiles}: java.lang.ClassNotFoundException: Didn't find class "amitechnologies.products.apps.equalizeraudioplayer.v3.view.LoaderOfAllMediaFiles" on path: DexPathList[[zip file "/data/app/amitechnologies.products.apps.equalizeraudioplayer.v3-1/base.apk"],nativeLibraryDirectories=[/data/app/amitechnologies.products.apps.equalizeraudioplayer.v3-1/lib/arm, /vendor/lib, /system/lib]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2395)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2564)
at android.app.ActivityThread.access$800(ActivityThread.java:170)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1441)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5576)
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:955)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:750)
Caused by: java.lang.ClassNotFoundException: Didn't find class "amitechnologies.products.apps.equalizeraudioplayer.v3.view.LoaderOfAllMediaFiles" on path: DexPathList[[zip file "/data/app/amitechnologies.products.apps.equalizeraudioplayer.v3-1/base.apk"],nativeLibraryDirectories=[/data/app/amitechnologies.products.apps.equalizeraudioplayer.v3-1/lib/arm, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at android.app.Instrumentation.newActivity(Instrumentation.java:1070)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2385)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2564)
at android.app.ActivityThread.access$800(ActivityThread.java:170)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1441)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5576)
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:955)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:750)
Suppressed: java.lang.ClassNotFoundException: amitechnologies.products.apps.equalizeraudioplayer.v3.view.LoaderOfAllMediaFiles
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 13 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
和文件夹结构:
推荐答案
在聊天中,我发现,您手动生成的方式APK
无法生成正确的APK,因此我建议通过以下方式
生成用于手动安装的APK:
As Discussion in chat i found that, Your manual way of generating APK is not generating the correct APK, so i am Suggesting these way to generating APK for Manual Install:
用于调试构建
- 删除您在App文件夹中构建的文件夹。
- 转到
Build>构建APk
。它将在您的
app> build> output> apk
目录中生成.apk文件。 - 将其复制到设备并手动安装。
- Delete you build folder inside the App folder.
- Goto
Build>Build APk
. it will generate .apk file in yourapp>build>output>apk
directory. - COPY it your device and install manually.
用于发布版本
- 删除您在App文件夹中构建的文件夹。
- 转到
Build>生成签名的APk
并提供推荐的详细信息,确保您的Build类型:release
并检查了签名版本v1(jar签名)
和v2(完整apk签名)
。它将在您的
app> build> output> apk
目录中生成.apk文件。 - 将其复制到设备并手动安装。
- Delete you build folder inside the App folder.
- Goto
Build>Generate Signed APk
and provide recomended Details, make sure yourBuild type : release
and have checked both signature versionv1(jar signature)
andv2(full apk signature)
. it will generate .apk file in yourapp>build>output>apk
directory. - COPY it your device and install manually.
这篇关于无法实例化活动组件信息类未找到异常Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!