问题是,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.AbstractTaskPlanExecutor $ TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)在org.gradle.execution.taskgraph.AbstractTaskPlanExecutor $ 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 $ …
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()
?
No Such table
当我使用Sugar ORM和GPU图像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) 我是Android新手.我已将我的admob应用程序链接到Play商店的随机应用程序.现在我想删除该应用程序,所以我想知道.有没有办法从我的Ad Mob帐户中删除它.因为它实际上不是我的应用所以我不想在我的Ad Mob帐户主页选项卡中看到它
我试图在Google上找到一些东西,但没有运气.我在Admob的FAQ部分的Q.6中 发现了令人沮丧的事情.据他们所说
目前,您无法重命名或删除应用.相反,请创建一个新应用并将相关广告单元从"未知应用"下移至新应用.
所以我很想知道.我真的无法从我的admob帐户中删除特定的应用程序.如果是的话,这个功能将来会有用吗?
我是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) #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'的值,上述两个循环是否被执行?
我有以下远程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
我已经为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
以下是我录制视频和音频的工作代码的结构:
问题: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) 你好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