Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android,ClassNotFoundException当使用;“提供的项目”;或IllegalArgumentException:已添加,当使用;“编写项目”;_Java_Android_Android Studio_Illegalstateexception - Fatal编程技术网

Java Android,ClassNotFoundException当使用;“提供的项目”;或IllegalArgumentException:已添加,当使用;“编写项目”;

Java Android,ClassNotFoundException当使用;“提供的项目”;或IllegalArgumentException:已添加,当使用;“编写项目”;,java,android,android-studio,illegalstateexception,Java,Android,Android Studio,Illegalstateexception,在gradle dependencies脚本中使用“提供的项目”时,我的类com.xyz.sample.QuickSampleApplication在应用程序启动时遇到了一个非常不寻常的ClassNotFoundException,或者另一个错误未捕获的翻译错误:java.lang.IllegalArgumentException:已添加:在渐变依赖中 实际错误: E/AndroidRuntime(17749): java.lang.RuntimeException: Unable to ins

在gradle dependencies脚本中使用“提供的项目”时,我的类com.xyz.sample.QuickSampleApplication在应用程序启动时遇到了一个非常不寻常的ClassNotFoundException,或者另一个错误未捕获的翻译错误:java.lang.IllegalArgumentException:已添加:在渐变依赖中

实际错误:

E/AndroidRuntime(17749): java.lang.RuntimeException: Unable to instantiate application com.xyz.sample.QuickSampleApplication: 

java.lang.ClassNotFoundException: Didn't find class 

"com.xyz.sample.QuickSampleApplication" on path: DexPathList[[zip file

"/data/app/com.uei.sample.library-2.apk"],nativeLibraryDirectories=[/data/app-

lib/com.uei.sample.library-2, /vendor/lib, /system/lib]]
compile fileTree(dir: 'src/main/java', include: ['*'])
项目说明:

E/AndroidRuntime(17749): java.lang.RuntimeException: Unable to instantiate application com.xyz.sample.QuickSampleApplication: 

java.lang.ClassNotFoundException: Didn't find class 

"com.xyz.sample.QuickSampleApplication" on path: DexPathList[[zip file

"/data/app/com.uei.sample.library-2.apk"],nativeLibraryDirectories=[/data/app-

lib/com.uei.sample.library-2, /vendor/lib, /system/lib]]
compile fileTree(dir: 'src/main/java', include: ['*'])
com.xyz.sample.QuickSampleApplicationcom.xyz.sample.QuickSampleActivity使用,并且两个类都在同一个包中com.xyz.sample

com.xyz.sample.QuickSampleApplication使用一个名为“QuickSDK库”的JAR,我将其作为“提供的依赖项”包含在gradle中,请参见下面的gradle片段:

dependencies {
    provided project(':quicksdklibrary')
    //OR provided fileTree(dir: 'libs/MyExternalLibs', include: '*.jar')
    compile 'com.android.support:appcompat-v7:21.0.0'
}
JAR实际上在IDE中解析,构建时没有错误,JAR的内部类对我的应用程序类可见,例如我的:

com.xyz.sample.QuickSampleApplication 或com.xyz.sample.QuickSampleActivity

com.xyz.sample.QuickSampleApplication和 和com.xyz.sample.QuickSampleActivity在AndroidManifest.xml中声明/拼写正确:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.xyz.sample.library"
      android:versionCode="1"
      android:versionName="1.0.002">
    <uses-sdk android:minSdkVersion="19" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

    <application android:icon="@drawable/icon" android:label="@string/app_name"
        android:name="com.xyz.sample.QuickSampleApplication">
        <activity android:name="com.xyz.sample.QuickSampleActivity" android:screenOrientation="portrait"
                  android:label="@string/app_name" android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


    </application>
</manifest>

根据评论,还尝试使用SourceSet标记:

或使用sourceSets标记:

sourceSets {

        main{
           java {
                java.srcDirs 'src/main/java'
            }

        }

    }

但是,生成的“.apk”仍然不包含类包com.xyz

有关此问题的最新更新,请参见以下内容:

E/AndroidRuntime(17749): java.lang.RuntimeException: Unable to instantiate application com.xyz.sample.QuickSampleApplication: 

java.lang.ClassNotFoundException: Didn't find class 

"com.xyz.sample.QuickSampleApplication" on path: DexPathList[[zip file

"/data/app/com.uei.sample.library-2.apk"],nativeLibraryDirectories=[/data/app-

lib/com.uei.sample.library-2, /vendor/lib, /system/lib]]
compile fileTree(dir: 'src/main/java', include: ['*'])
替代尝试#1:

E/AndroidRuntime(17749): java.lang.RuntimeException: Unable to instantiate application com.xyz.sample.QuickSampleApplication: 

java.lang.ClassNotFoundException: Didn't find class 

"com.xyz.sample.QuickSampleApplication" on path: DexPathList[[zip file

"/data/app/com.uei.sample.library-2.apk"],nativeLibraryDirectories=[/data/app-

lib/com.uei.sample.library-2, /vendor/lib, /system/lib]]
compile fileTree(dir: 'src/main/java', include: ['*'])
当我在gradle中使用此标签时

dependencies {
    compile 'com.android.support:appcompat-v7:23.0.1'

    provided project(':quicksdklibrary')
}
然后我得到ClassNotFoundException(检查apk&class classes.dex确认没有包含我的QuickDKLibrary类),但是当我使用:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    // OR compile files(libs/:quicksdklibrary.jar)
    // OR compile project(':quicksdklibrary')
    compile 'com.android.support:appcompat-v7:23.0.1'

}
然后我得到了另一个错误,它甚至不允许我部署/安装apk:

:app:preDexDebug

Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/xyz/ace/ACEUtils$Creator;

Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/xyz/ace/AEUtils;

Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/xyz/ace/AEngine;

Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/xyz/ace/ATag;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/xyz/ace/ABehavior;

Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/xyz/ace/AContext;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/xyz/ace/AControl$List;

Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/xyz/ace/AControl;

Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/xyz/ace/AData;

UNEXPECTED TOP-LEVEL EXCEPTION:

Error:Execution failed for task ':app:preDexDebug'.

com.android.ide.common.process.ProcessException: 

org.gradle.process.internal.ExecException: Process 'command 'C:\Program 
Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 2
**其他尝试:**

我确实检查了整个项目,并多次重新创建了该项目,以确保我多次没有包含此JAR,但是我仍然收到相同的错误“未捕获的翻译错误:java.lang.IllegalArgumentException:已添加…”

我还重新安装了Android SDK,并将我的JDK更新为jdk1.7.0_80,但是我仍然收到这个错误

我查看了stackoverflow上的其他帖子,其中提到我应该删除对支持库版本4或7的引用,我也尝试过

其他尝试:

E/AndroidRuntime(17749): java.lang.RuntimeException: Unable to instantiate application com.xyz.sample.QuickSampleApplication: 

java.lang.ClassNotFoundException: Didn't find class 

"com.xyz.sample.QuickSampleApplication" on path: DexPathList[[zip file

"/data/app/com.uei.sample.library-2.apk"],nativeLibraryDirectories=[/data/app-

lib/com.uei.sample.library-2, /vendor/lib, /system/lib]]
compile fileTree(dir: 'src/main/java', include: ['*'])
我还检查了实际的JAR,看看是否在同一个包中创建了多个具有相同名称的类,而这些类不是

我还尝试添加模糊版本,它将具有不同的类名,但是JAR的模糊版本有“未捕获的翻译错误:java.lang.IllegalArgumentException:已添加:…”错误

问题:

如何解决此“未捕获的翻译错误:java.lang.IllegalArgumentException:已添加:”,为什么app:preDexDebug认为我的类有多个版本,或者尝试添加多个版本


万分感谢大家

我也有同样的问题,但答案与支持库有关

    compile 'com.android.support:appcompat-v7:21.0.0'
尝试在没有支持库的情况下创建一个新的应用程序,或者简单地尝试删除这个应用程序,看看会发生什么

更新(您还应检查是否存在此项):


可能您已经添加了两次库,如下所示:

  • 依赖性
  • 在库文件夹中
  • 不要这样做。相反,在这两种方式中,任何一种都要保留。
    意味着从库文件夹中删除
    jar
    文件对您来说会更好。

    谢谢您的帮助,但这与我的情况无关。在我的例子中,src类没有被JAR化,但只有当我包含一个外部JAR文件时才被JAR化。没有其他错误。请参阅上面关于此问题的最新更新是的,JAR任务出于未知原因向JAR包添加了两次类文件,因此我使用了duplicate=“preserve”&update=“true”属性来防止重复<代码>