小编She*_*lji的帖子

Android-错误:任务执行失败':app:transformClassesWithDexForRelease'

问题是,debug当我切换到release模式时,我可以运行我的应用程序但是当我切换到模式时它会失败.

例外:

FAILURE:构建因异常而失败.

任务':app:transformClassesWithDexForRelease'的执行失败.com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:org.gradle.process. internal.ExecException:进程'command'/ Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java''以非零退出值1结束

当我使用stacktrace运行gradle build命令时,这就是我得到的

./gradlew app:transformClassesWithDexForRelease --stacktrace
Run Code Online (Sandbox Code Playgroud)

com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:org.gradle.process. internal.ExecException:进程'命令'/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java''以非零退出值1结束

例外情况是:

org.gradle.api.tasks.TaskExecutionException:任务':app:transformClassesWithDexForRelease'的执行失败.在org.gradle上的org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) .api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)在org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)在org.gradle.api.internal .tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)在org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)在org.gradle.api.internal.tasks.execution .skipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecu org.gradle.execution.taskgraph.DefaultTaskGraphExecuter上的ter.execute(ExecuteAtMostOnceTaskExecuter.java:43)org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker.exe(EventTaskTraphExecuter.java) 185)在org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor $ TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)在org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor $ TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)在org.gradle.execution .taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)at at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)at org.gradle.execution.DefaultBuildExecuter.access $ 000(DefaultBuildExecuter.jav)一:23)在org.gradle.execution.DefaultBuildExecuter $ 1.proceed(在org.gradle.execution.DefaultBuildExecuter.execute DefaultBuildExecuter.java:43)在org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)( DefaultBuildExecuter.java:37)在org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)在org.gradle.initialization.DefaultGradleLauncher $ 4.run(DefaultGradleLauncher.java:154)在org.gradle.internal.Factories $ 1 .create(Factories.java:22)在org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)在org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52)在有机gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:151)在org.gradle.initialization.DefaultGradleLauncher.access $ 200(DefaultGradleLauncher.java:32)在org.gradle.initialization.DefaultGradleLauncher $ 1,创建(DefaultGradleLauncher.java:99)在组织.gradle.initialization.DefaultGradleLauncher $ 1.创建(DefaultGradleLauncher.java:93)在org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)在org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java :62)org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:93)atg.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)org.gradle.launcher.exec.InProcessBuildActionExecuter $ DefaultBuildController.运行(InProcessBuildActionExecuter.java:94)在org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)在org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)在组织.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)at org .gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)在org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:48)在org.gradle.launcher.daemon.server.exec.ExecuteBuild .doBuild(ExecuteBuild.java:52)org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution) .java:120)org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) )org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)at org. gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSi ngleUsedDaemon.java:34)org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)org.gradle.launcher.daemon.server.exec.ForwardClientInput $ 2.call(ForwardClientInput.java) :74)在org.gradle.launcher的org.gradle.launcher.daemon.server.exec.ForwardClientInput $ 2.call(ForwardClientInput.java:72)atg.gradle.util.Swapper.swap(Swapper.java:38)位于org.gradle.launcher.daemon.server的org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)的.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)位于org.gradle.launcher.daemon.server.exec.LogToClient的org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)的.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)位于org.gradle.launcher.daemon.server.api.Daemo的org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)中的.doBuild(LogToClient.java:66)nCommandExecution.proceed(DaemonCommandExecution.java:120)在org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)在org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute( BuildCommandOnly.java:36)在org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)在org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java: 41)在org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)在org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy $ 1.run(StartBuildOrRespondWithBusy.java:50)在org.gradle.launcher.daemon.server.DaemonStateCoordinator $ 1.run(DaemonStateCoordinator.java:246)位于org.gradle.internal.concurrent的org.gradle.internal.concurrent.ExecutorPolicy $ CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54) .StoppableExecutorImpl $ …

android gradle gradlew android-studio android-gradle-plugin

177
推荐指数
16
解决办法
42万
查看次数

如何区分Switch,Checkbox Value是由用户还是以编程方式更改(包括保留)?

setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // How to check whether the checkbox/switch has been checked
                // by user or it has been checked programatically ?

                if (isNotSetByUser())
                    return;
                handleSetbyUser();
            }
        });
Run Code Online (Sandbox Code Playgroud)

如何实现方法isNotSetByUser()

checkbox android onchange listener

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

Android:Sugar ORM没有这样的表格例外

No Such table当我使用Sugar ORMGPU图像Android库时,我得到了例外.我正在使用Gradle和Android Studio.一旦我删除GPU图像这个问题就解决了.所以我不知道什么导致这个例外.关于这个例外的细节也在这个git问题中讨论, 似乎很多人仍然面临着这个问题.

我的崩溃日志发布在下面

> 10-09 11:30:21.511 4326-4831/com.example.app E/SQLiteLog: (10) Failed
> to do file read, got: 0, amt: 100, last Errno: 2 10-09 11:30:26.506
> 4326-4831/com.example.app E/SQLiteLog: (1) no such table: IMAGE 10-09
> 11:30:26.516 4326-4831/com.example.app E/AndroidRuntime: FATAL
> EXCEPTION: AsyncTask #1 10-09 11:30:26.516 4326-4831/com.example.app
> E/AndroidRuntime: java.lang.RuntimeException: An error occured while
> executing doInBackground() 10-09 11:30:26.516
> 4326-4831/com.example.app E/AndroidRuntime:     at
> android.os.AsyncTask$3.done(AsyncTask.java:299) 10-09 11:30:26.516
> 4326-4831/com.example.app E/AndroidRuntime:     at …
Run Code Online (Sandbox Code Playgroud)

sqlite android gpuimage sugarorm

38
推荐指数
11
解决办法
3万
查看次数

如何从Admob中删除或删除Android应用程序?

我是Android新手.我已将我的admob应用程序链接到Play商店的随机应用程序.现在我想删除该应用程序,所以我想知道.有没有办法从我的Ad Mob帐户中删除它.因为它实际上不是我的应用所以我不想在我的Ad Mob帐户主页选项卡中看到它

我试图在Google上找到一些东西,但没有运气.我在Admob的FAQ部分的Q.6中 发现了令人沮丧的事情.据他们所说

目前,您无法重命名或删除应用.相反,请创建一个新应用并将相关广告单元从"未知应用"下移至新应用.

所以我很想知道.我真的无法从我的admob帐户中删除特定的应用程序.如果是的话,这个功能将来会有用吗?

android admob

37
推荐指数
4
解决办法
5万
查看次数

对正在播放的视频应用效果

我是Open Gl世界的新手,我已经google了很多,但我无法找到一种方法来实现对正在播放的视频的效果.经过一番研究,我终于找到了一个可以用来在GLSurfaceView播放视频.我从Google文档中了解到,我们可以对视频应用效果.

通过这篇文章,我能够成功地对位图应用效果.现在我想为我的视频做到这一点,所以任何帮助或指针都表示赞赏.

是我用于渲染正在播放的视频的VideoSurfaceView

package me.crossle.demo.surfacetexture;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;

import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.SurfaceTexture;
import android.media.MediaPlayer;
import android.opengl.GLES20;
import android.opengl.GLSurfaceView;
import android.opengl.Matrix;
import android.util.Log;
import android.view.Surface;

@SuppressLint("ViewConstructor")
class VideoSurfaceView extends GLSurfaceView {

    VideoRender mRenderer;
    private MediaPlayer mMediaPlayer = null;

    public VideoSurfaceView(Context context, MediaPlayer mp) {
        super(context);

        setEGLContextClientVersion(2);
        mMediaPlayer = mp;
        mRenderer = new VideoRender(context);
        setRenderer(mRenderer);
    }

    @Override
    public void onResume() { …
Run Code Online (Sandbox Code Playgroud)

video android opengl-es glsurfaceview

23
推荐指数
1
解决办法
8303
查看次数

NOT(〜)vs NEGATION(!)

#include <iostream>

using namespace std;
int main(int argc, char *argv[]) 
{
   int i=-5;
   while(~(i))
   {
      cout<<i;
      ++i;
   }

 }
Run Code Online (Sandbox Code Playgroud)

输出为-5,-4,-3,-2.不应该打印值直到-1?为什么它只到-2.请解释一下'not'和'negation'运算符之间的区别.当我编写程序时,它们就是bug的来源.

while(i)
Run Code Online (Sandbox Code Playgroud)

我知道循环条件对于正和负i都是正确的,除了0.

while(!i) vs while(~i)
Run Code Online (Sandbox Code Playgroud)

对于'i'的值,上述两个循环是否被执行?

c c++ bitwise-operators logical-operators

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

Android:Firebase remoteConfig getString()方法正在从default.xml中的字符串中删除引号

我有以下远程config_default.xml文件

<?xml version="1.0" encoding="utf-8"?>
<defaultsMap>
       <entry>
            <key>LOCAL_JSON</key>
            <value>[{"title":"TitleA","path":"pathA","image_url":" Some URL A"},{"title":"TitleB","path":"pathB","image_url":" Some URL B"}]</value>
        </entry>
</defaultsMap>
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用Firebase远程配置getString()方法访问它时,我总是得到没有引号的字符串

"[{title:TitleA,path:pathA,image_url: Some URL A},{title:TitleB,path:pathB,image_url: Some URL B}]"§
Run Code Online (Sandbox Code Playgroud)

如下图所示

在此输入图像描述

我在Firebase远程配置控制台上放了相同的字符串,一旦应用程序从那里取出它,就会将双引号放在字符串中,就像我期望的那样.

我仔细检查了这一点,当我使用以下项目gradle文件时它似乎工作正常

    apply plugin: 'com.github.ben-manes.versions'
    buildscript {
        repositories {
            maven { url "http://dl.bintray.com/populov/maven" }
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.3.3'
            classpath 'me.tatarka:gradle-retrolambda:3.6.1'
            classpath 'com.github.ben-manes:gradle-versions-plugin:0.13.0'
            classpath 'com.stanfy.spoon:spoon-gradle-plugin:1.2.1'
            classpath 'com.google.gms:google-services:3.1.0'
            classpath 'com.google.firebase:firebase-plugins:1.0.5'
        }
    }

    allprojects {
        repositories {
            maven { url "http://dl.bintray.com/populov/maven" }
            maven { url "http://oss.sonatype.org/content/repositories/snapshots" }
            maven { url …
Run Code Online (Sandbox Code Playgroud)

android firebase android-gradle-plugin firebase-remote-config android-gradle-3.0

15
推荐指数
1
解决办法
1582
查看次数

Android Media Recorder不会在Google Glass上录制长视频

我已经为Google Glass 编写了一个开源摄像头,但是一些使用它的人报告说,录制的视频无法正常保存用于冗长的视频.

我找不到有关Android文档中任何此类限制的信息

因此,在检查出来之后,我发现对于大于26 minutes的视频,视频文件保存在Glass中,其大小已经存在,2.7 GB但其持续时间是0:00.它无法使用任何视频播放器播放.

所以我想知道为什么会这样?为什么视频会被正确录制duration < 26 minutes并被搞砸为更长的视频.

启动视频录制的代码是

/**
 * Initialize video recorder to record video
 */
private void initRecorder() {
    try {
        File dir = new File(Environment.getExternalStorageDirectory()
                + File.separator + Environment.DIRECTORY_PICTURES
                + File.separator + "My Videos");
        if (!dir.exists()) {
            dir.mkdirs();
        }
        videofile = new File(dir, "video.mp4");
        recorder.setCamera(mCamera);

        // Step 2: Set sources
        recorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
        recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

        // Step 3: Set a CamcorderProfile (requires API Level 8 or …
Run Code Online (Sandbox Code Playgroud)

android android-camera android-mediarecorder google-glass google-glass-camera

14
推荐指数
1
解决办法
396
查看次数

使用android MediaRecorder

以下是我录制视频和音频的工作代码的结构:

问题:1)为什么CamcorderProfile需要?setProfile(...)似乎将尺寸设置为QUALITY_HIGH给出的尺寸,但稍后我设置了我想要的尺寸setVideoSize(...),这将覆盖它.但是,当我删除两个CamcorderProfile行时,应用程序崩溃setVideoSize(...)与LogCat E/MediaRecorder(19526): setVideoSize called in an invalid state: 2.

2)我怎么不录音?文档说明如果setAudioSource(...)未调用,则不会有音轨.但是,当我删除该行时,应用程序setProfile(...)与LogCat 崩溃E/MediaRecorder(19946): try to set the audio encoder without setting the audio source first.

3)如果我删除了两个CamcorderProfile行和该setAudioSource(...)行,它会像1)中那样崩溃.

4)我也试过添加线

recorder.setOutputFormat(OutputFormat.DEFAULT);
Run Code Online (Sandbox Code Playgroud)

而不是CamcorderProfile线.但现在它崩溃了perpare().如果setAudioSource(...)调用LogCat是:E/MediaRecorder(20737): audio source is set, but audio encoder is not set如果没有调用LogCat是:E/MediaRecorder(20544): video source is set, but video encoder is not set

我已经看了整个互联网,我找不到一个正确的方法来设置MediaRecorder的一个很好的例子.意味着在API 8之后你应该使用CamcorderProfile类,但在我看来它引起了问题.

任何帮助都会很棒!谢谢!

代码(运行时如下):

recorder = …
Run Code Online (Sandbox Code Playgroud)

android mediarecorder

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

自定义对象是按值传递还是通过片段和活动中的引用传递.

你好Java和Android专家.我遇到了问题.我正在制作一个基于XMPP的聊天应用程序.有一些事让我感到困惑.

我有一个名为Room_Structure的类,它实现了Serializable.该类有一个名为currentRoom的对象.

如果我通过把它放在一个捆绑包中来传递两个片段之间的currentroom对象,它的工作正常,并且令人惊讶的是它通过引用传递.我不知道为什么会这样.它不应该像这样.顺便说一句,我正在使用Android支持库?

但是,如果我使用bundle在Activities之间传递currentRoom对象并将该bundle放入intent中,那么每当我尝试使用该intent启动新活动时,我都会遇到崩溃.

更多说明这是代码

public class Room_Structure implements Serializable {


    private static final long serialVersionUID = 1L;
    private String Rname;
    private ArrayList<Message_Pattern> msg_list;
    private MultiUserChat XmppSession;
    private boolean Background;
    private boolean Modified;
    private boolean Destroyed;
}
Run Code Online (Sandbox Code Playgroud)

上面的类有构造函数以及getter和setter.

现在这就是我在做什么:

考虑一下currentRoom对象已经被填充了,这就是我将它传递给Fragment的方式

    Bundle b = new Bundle();
    b.putSerializable("RoomObject", currentRoom);
    Fragment_Chat newChat = new Fragment_Chat();
    newChat.setArguments(b);
    FragmentManager fm = getChildFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    ft.replace(R.id.fl_chatFragment, newChat);
    ft.addToBackStack(null);
    ft.commit();
Run Code Online (Sandbox Code Playgroud)

从像这样的Fragment_Chat OnActivityCreated()方法中检索它

Bundle extras = getArguments();
Room_Structure …
Run Code Online (Sandbox Code Playgroud)

java android android-intent android-fragments android-activity

10
推荐指数
1
解决办法
2097
查看次数