java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/appcompat/app/AppCompatActivity;
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/appcompat/app/AppCompatActivity;
我有带有 android studio 插件的 unity 应用程序,当我按下按钮时,它会在我的 phone 上加载 android 相机应用程序...这里 java class:
import android.content.Intent;
import android.os.Bundle;
import android.provider.MediaStore;
import androidx.appcompat.app.AppCompatActivity;
public class LoadAndroidApp extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivity(intent);
}
}
这是我的作品 gradle:
apply plugin: 'com.android.library'
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
minSdkVersion 24
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies
{
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'androidx.appcompat:appcompat:1.1.0-alpha04'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
当我启动我的 unity 应用程序时,它没有崩溃,但我在 logcat 中遇到此错误:
2021-04-27 18:45:26.327 27678-27700/? E/Unity: AndroidJavaException: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/appcompat/app/AppCompatActivity;
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/appcompat/app/AppCompatActivity;
at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
at com.unity3d.player.UnityPlayer.access0(Unknown Source:0)
at com.unity3d.player.UnityPlayer$e.handleMessage(Unknown Source:95)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:241)
at com.unity3d.player.UnityPlayer$e.run(Unknown Source:20)
Caused by: java.lang.ClassNotFoundException: androidx.appcompat.app.AppCompatActivity
at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
at com.unity3d.player.UnityPlayer.access0(Unknown Source:0)
at com.unity3d.player.UnityPlayer$e.handleMessage(Unknown Source:95)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:241)
at com.unity3d.player.UnityPlayer$e.run(Unknown Source:20)
at UnityEngine.AndroidJNISafe.CheckException () [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.AndroidJNISafe.FindClass (System.String name) [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.AndroidJavaClass._AndroidJavaClass (System.String className) [0x00000] in <00000000000000000000000000000000>:0
请帮忙,我需要一些反馈...我读到这是因为 aar 文件不包含我们在 gradle 文件中添加的外部依赖项,但我没有错误当我创建我的插件时...请帮助...提前谢谢你。
编译插件时它不包含“androidx.appcompat.app.AppCompatActivity”,您必须将该包添加到 Plugin/Android 文件夹中。有两种方法可以解决此问题;
1-External Dependency Manager for Unity!此插件有助于添加外部依赖项。
2-您可以在 Android 开发者网站上找到依赖项 .jar 或 .aar。
我推荐第一个选项。因为它还处理 cocoapods 依赖项。
或
如果您不需要任何依赖项,请使用“Activity”扩展您的 class。如果您的函数包含在 Activity class 中,则无需添加任何依赖项。
我有带有 android studio 插件的 unity 应用程序,当我按下按钮时,它会在我的 phone 上加载 android 相机应用程序...这里 java class:
import android.content.Intent;
import android.os.Bundle;
import android.provider.MediaStore;
import androidx.appcompat.app.AppCompatActivity;
public class LoadAndroidApp extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivity(intent);
}
}
这是我的作品 gradle:
apply plugin: 'com.android.library'
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
minSdkVersion 24
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies
{
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'androidx.appcompat:appcompat:1.1.0-alpha04'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
当我启动我的 unity 应用程序时,它没有崩溃,但我在 logcat 中遇到此错误:
2021-04-27 18:45:26.327 27678-27700/? E/Unity: AndroidJavaException: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/appcompat/app/AppCompatActivity;
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/appcompat/app/AppCompatActivity;
at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
at com.unity3d.player.UnityPlayer.access0(Unknown Source:0)
at com.unity3d.player.UnityPlayer$e.handleMessage(Unknown Source:95)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:241)
at com.unity3d.player.UnityPlayer$e.run(Unknown Source:20)
Caused by: java.lang.ClassNotFoundException: androidx.appcompat.app.AppCompatActivity
at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
at com.unity3d.player.UnityPlayer.access0(Unknown Source:0)
at com.unity3d.player.UnityPlayer$e.handleMessage(Unknown Source:95)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:241)
at com.unity3d.player.UnityPlayer$e.run(Unknown Source:20)
at UnityEngine.AndroidJNISafe.CheckException () [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.AndroidJNISafe.FindClass (System.String name) [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.AndroidJavaClass._AndroidJavaClass (System.String className) [0x00000] in <00000000000000000000000000000000>:0
请帮忙,我需要一些反馈...我读到这是因为 aar 文件不包含我们在 gradle 文件中添加的外部依赖项,但我没有错误当我创建我的插件时...请帮助...提前谢谢你。
编译插件时它不包含“androidx.appcompat.app.AppCompatActivity”,您必须将该包添加到 Plugin/Android 文件夹中。有两种方法可以解决此问题;
1-External Dependency Manager for Unity!此插件有助于添加外部依赖项。
2-您可以在 Android 开发者网站上找到依赖项 .jar 或 .aar。
我推荐第一个选项。因为它还处理 cocoapods 依赖项。
或
如果您不需要任何依赖项,请使用“Activity”扩展您的 class。如果您的函数包含在 Activity class 中,则无需添加任何依赖项。