我正在尝试将Amazon AWS服务用于我的项目。我添加了依赖项;该项目建设良好。 当我在手机上运行应用程序时出现此错误:
public function Start_Secure_Session()
{
// Forces sessions to only use cookies.
ini_set('session.use_only_cookies', 1);
// Gets current cookies params
$cookieParams = session_get_cookie_params();
// Set Cookie Params
session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], $this->isHTTPS, $this- >deny_java_session_id);
// Sets the session name
session_name($this->session_name);
// Start the php session
session_start();
// If new session or expired, generate new id
if (!isset($_SESSION['new_session']))
{
$_SESSION['new_session'] = "true";
// regenerate the session, delete the old one.
session_regenerate_id(true);
}
}
启用 Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: com/amazonaws/auth/NoOpSigner.class
时发生此错误。
如果没有multiDexEnabled true
,则错误更改为:
multiDexEnabled true
这是我的gradle文件:
Error:Execution failed for task ':app:dexDebug'.
> 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
答案 0 :(得分:2)
对于Android AWS sdk AFAIK,它不需要附加com.amazonaws:aws-java-sdk-core:1.10.52
库,因为对于来自amazon github源的android我发现的是android单独的库是可用的。check this link
对于Android,这个需要com.amazonaws:aws-android-sdk-core:2.2.12
,它已经是你已经附加的com.amazonaws:aws-android-sdk-cognito:2.+
,com.amazonaws:aws-android-sdk-sqs:2.+
的子库。
如何检查依赖关系/层次结构?
执行此命令:gradlew app:dependencies
您将获得如下输出
_releaseApk - ## Internal use, do not manually configure ##
+--- com.android.support:support-v4:+ -> 23.1.1
| \--- com.android.support:support-annotations:23.1.1
+--- com.android.support:design:23.1.1
| +--- com.android.support:appcompat-v7:23.1.1
| | \--- com.android.support:support-v4:23.1.1 (*)
| +--- com.android.support:recyclerview-v7:23.1.1
| | +--- com.android.support:support-annotations:23.1.1
| | \--- com.android.support:support-v4:23.1.1 (*)
| \--- com.android.support:support-v4:23.1.1 (*)
+--- com.android.support:multidex:1.0.1
+--- com.amazonaws:aws-android-sdk-s3:2.+ -> 2.2.12
| \--- com.amazonaws:aws-android-sdk-core:2.2.12
| \--- com.google.code.gson:gson:2.2.4
+--- com.amazonaws:aws-android-sdk-core:2.+ -> 2.2.12 (*)
+--- com.amazonaws:aws-android-sdk-sqs:2.+ -> 2.2.12
| \--- com.amazonaws:aws-android-sdk-core:2.2.12 (*)
\--- com.amazonaws:aws-android-sdk-cognito:2.+ -> 2.2.12
\--- com.amazonaws:aws-android-sdk-core:2.2.12 (*)
标记为(*)的重复子库。如果您还在外部附加,则可以删除(例如您已经附加的gradle support-v4
已经在设计库中,并且与aws-android-sdk-core
相同)。
android-sdk不需要AFAIK com.amazonaws:aws-java-sdk-core:1.10.52
。
移除java-sdk-core
android-core& java-core有相同的类,这就是为什么它给出了有关重复条目的错误
删除com.amazonaws:aws-java-sdk-core:1.10.52
,您也可以删除不需要的multidex选项(方法计数减少到65k)
如果有的话,请告诉我。
答案 1 :(得分:0)
如果您只是导入一些jar文件,可以尝试删除它们并一次添加一个。这将帮助您确定哪一个导致错误。
答案 2 :(得分:0)
packageAllDebugClassesForMultiDex 错误的主要原因与您在Stackoverflow中的所有其他帖子中找到的相同,即您必须拥有一些在项目中可以多次使用的类文件。在我的情况下,我在上面的项目中有很多模块,如Facebook,谷歌付费服务和滑动菜单等。所有这些模块都有自己的v4.support jar文件副本。我所做的是删除所有这些库libs文件夹中的所有v4.support文件。然后从我的sdks添加依赖到v4.support lib,即从Android Studio项目结构中添加com.android.support libs。为此...
完成了。清理项目并重新构建它。 packageAllDebugClassesForMultiDex 问题已经消失。
它会帮助你。有关详细信息,请访问此处java.util.zip.ZipException: duplicate entry :how to overcome