我将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.
有没有人知道如何解决这个问题?
我想在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工作室更新到版本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库项目.库项目有一个自定义类,扩展了Application我已经完成一些初始化的基类.现在的问题是,即使我已经在库项目的清单文件中正确地注册了它,也不会自动调用该类.我甚至试图用它来调用它
MyApplication app = new MyApplication();
app.onCreate();
Run Code Online (Sandbox Code Playgroud)
但这给了我一个空指针异常.
我认为应用程序类不会自动在库项目中调用.如果这是真的,那么在库项目中手动调用它的更好方法是什么?
我已经安装了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
我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) 有没有办法在适配器外的特定位置获取RecyclerView的项目.例如在ListView中我们可以做到:
listView.getItem(position);
Run Code Online (Sandbox Code Playgroud)
我们可以用RecyclerView做到这一点吗?并且还提供了提供的数据列表的顺序?
我在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应用程序启用了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) 我们的一些用户在排序列表时遇到此异常.抛出它的代码是
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"
android ×9
proguard ×3
build ×1
collections ×1
gradle ×1
java ×1
obfuscation ×1
rect ×1
sorting ×1
zendesk ×1