小编Say*_*san的帖子

Gradle Duplicate Entry:java.util.zip.ZipException

我将Zendesk移动sdk通过其maven存储库集成到我的项目中,它将不再构建.它与我正在使用的毕加索图书馆发生了某种冲突.我在构建期间遇到此错误:

Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: com/squareup/picasso/Action$RequestWeakReference.class 
Run Code Online (Sandbox Code Playgroud)

我跑../gradlew dependencies了app文件夹,这是我在zendesk模块下找到的:

\--- com.zendesk:sdk:1.0.0.1
     +--- com.squareup.retrofit:retrofit:1.4.1
     |    \--- com.google.code.gson:gson:2.2.4
     +--- com.squareup.picasso:picasso:2.3.2
     +--- com.android.support:support-v4:20.0.+ -> 21.0.3 (*)
     \--- com.android.support:appcompat-v7:20.0.+ -> 21.0.3 (*)
Run Code Online (Sandbox Code Playgroud)

因此,zendesk也使用毕加索,但版本与我在项目中的版本不同.我试着从zendesk中排除毕加索,就像这样:

compile (group: 'com.zendesk', name: 'sdk', version: '1.0.0.1'){
            exclude group: 'com.squareup.picasso'
        }
Run Code Online (Sandbox Code Playgroud)

但这会导致应用程序的其他组件中出现运行时异常.我得到一个与库完全无关的类的NoDefFoundError.
有没有人知道如何解决这个问题?

android gradle zendesk android-studio android-gradle-plugin

17
推荐指数
1
解决办法
4万
查看次数

意图服务中的Android Alert对话框

我想在intent服务中显示一个警告对话框.

   AlertDialog alertDialog = new AlertDialog.Builder(this).create();
Run Code Online (Sandbox Code Playgroud)

这会引发以下异常

   Unable to add window — token null is not for an application
Run Code Online (Sandbox Code Playgroud)

我也尝试过IntentService.this和getApplicationContext().之间我不想使用活动.我只是想用一个小文本显示一个简单的警告对话框.

android android-intent intentservice android-alertdialog

12
推荐指数
2
解决办法
3万
查看次数

使用app:transformClassesAndResourcesWithProguardForRelease构建失败

我最近将android工作室更新到版本2.3,构建工具到25.0.2,gradle 2.3.0和gradle distribution 3.3现在我在构建项目时得到了这个.从来没有旧版本的这个问题.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:84)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:55)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:236)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:228)
        at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:228)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:215)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:77)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:58)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
        at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: java.lang.RuntimeException: Job failed, see logs for details
        at com.android.build.gradle.internal.transforms.ProGuardTransform.transform(ProGuardTransform.java:196)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:185)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:181)
        at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
        at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:176)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:163)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134) …
Run Code Online (Sandbox Code Playgroud)

android build proguard android-studio android-proguard

9
推荐指数
2
解决办法
9366
查看次数

库项目中的自定义应用程序类

我有一个应用程序项目引用的android库项目.库项目有一个自定义类,扩展了Application我已经完成一些初始化的基类.现在的问题是,即使我已经在库项目的清单文件中正确地注册了它,也不会自动调用该类.我甚至试图用它来调用它

 MyApplication app = new MyApplication();
 app.onCreate();
Run Code Online (Sandbox Code Playgroud)

但这给了我一个空指针异常.

我认为应用程序类不会自动在库项目中调用.如果这是真的,那么在库项目中手动调用它的更好方法是什么?

android

7
推荐指数
1
解决办法
5090
查看次数

未初始化的常量ActionView :: CompiledTemplates :: BootstrapPagination

我已经安装了will_paginate-bootstrap gem来使用bootstrap样式分页.在我看来,我有这个:

    <%= will_paginate @mylist, renderer: BootstrapPagination::Rails %> 
Run Code Online (Sandbox Code Playgroud)

但它返回此错误

    uninitialized constant ActionView::CompiledTemplates::BootstrapPagination
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails will-paginate twitter-bootstrap ruby-on-rails-4

7
推荐指数
1
解决办法
1万
查看次数

Android ProGuard + MultiDex导致ClassNotFoundException

MultiDex在我的android项目中启用了.它工作正常,直到我尝试启用proguard.我可以成功构建项目,但我在启动时遇到运行时异常.它无法找到Application类和MainActivity.在启用之前我遇到了同样的问题MultiDex.现在我想由于某种原因,MultiDex它无法正常使用ProGuard.这是我在logcat中得到的 -

02-17 19:01:09.749: I/MultiDex(2079): VM with version 2.1.0 has multidex support
02-17 19:01:09.749: I/MultiDex(2079): install
02-17 19:01:09.749: I/MultiDex(2079): VM has multidex support, MultiDex support library is disabled.
02-17 19:01:09.750: I/art(2079): Rejecting re-init on previously-failed class java.lang.Class<android.support.v4.app.FragmentActivity>
02-17 19:01:09.750: I/art(2079): Rejecting re-init on previously-failed class java.lang.Class<android.support.v4.app.FragmentActivity>
02-17 19:01:09.751: I/art(2079): Rejecting re-init on previously-failed class java.lang.Class<mypackage.activities.MainActivity>
02-17 19:01:09.751: I/art(2079): Rejecting re-init on previously-failed class java.lang.Class<mypackage.activities.MainActivity>
02-17 19:01:09.751: D/AndroidRuntime(2079): Shutting down VM …
Run Code Online (Sandbox Code Playgroud)

android proguard classnotfoundexception android-multidex

7
推荐指数
1
解决办法
7102
查看次数

RecyclerView android:获取特定位置的项目

有没有办法在适配器外的特定位置获取RecyclerView的项目.例如在ListView中我们可以做到:

    listView.getItem(position); 
Run Code Online (Sandbox Code Playgroud)

我们可以用RecyclerView做到这一点吗?并且还提供了提供的数据列表的顺序?

android android-listview android-recyclerview

5
推荐指数
1
解决办法
2万
查看次数

在RecyclerView ItemDecoration中更改输出Rect颜色 - Android

我在ItemDecoration类中为recyclerView提供了这个方法 -

@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent,   RecyclerView.State state) {
        outRect.left = space;
        outRect.right = space;
        outRect.bottom = space;

        // Add top margin only for the first item to avoid double space between items
        if(parent.getChildPosition(view) == 0)
            outRect.top = space;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法改变输出outRect的颜色,如重绘它或什么?

android rect android-recyclerview

5
推荐指数
1
解决办法
739
查看次数

Android Proguard - ClassNotFoundException

我为我的Android应用程序启用了proguard.我可以成功构建项目,但它在启动时崩溃与classNotFoundException.它甚至没有找到发射器活动.这是我的proguard规则文件

-libraryjars libs

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application

-keepnames class com.mypackage.** { *; } //someone suggested this but doesn't work

# We only want obfuscation
-keepattributes InnerClasses,Signature

# Sdk
-keep public interface com.zendesk.sdk.** { *; }
-keep public class com.zendesk.sdk.** { *; }

# Appcompat and support
-keep interface android.support.v7.** { *; }
-keep class android.support.v7.** { *; }
-keep interface android.support.v4.** { *; }
-keep class android.support.v4.** { *; }

# Gson …
Run Code Online (Sandbox Code Playgroud)

obfuscation android proguard android-proguard

4
推荐指数
2
解决办法
6969
查看次数

Collections.sort - IllegalArgumentException:比较方法违反了其一般合同

我们的一些用户在排序列表时遇到此异常.抛出它的代码是

Collections.sort(activeConverstions, new Comparator<Conversation>() {
        @Override
        public int compare(Conversation o1, Conversation o2) {
            return (int)(o2.getTime()- o1.getTime()); // descending order
        }
    });
Run Code Online (Sandbox Code Playgroud)

而getTime()的类型为"long"

java sorting collections android

2
推荐指数
1
解决办法
482
查看次数