我正在尝试按照Google在此处提供的示例将我的Google Play服务依赖项升级到8.4.0 ,但是我收到以下错误('com.example.exampleapp'是我的应用包名称的替代品):
Error:Execution failed for task ':app:processDebugGoogleServices'.
> No matching client found for package name 'com.example.exampleapp'
Run Code Online (Sandbox Code Playgroud)
项目build.gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0-alpha3'
classpath 'com.google.gms:google-services:2.0.0-alpha3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
Run Code Online (Sandbox Code Playgroud)
模块app/build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.example.exampleapp"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName …Run Code Online (Sandbox Code Playgroud) android google-play-services android-studio build.gradle android-gradle-plugin
我正在创建一个自定义相机应用程序。我面临的问题是,当我在前后摄像头之间切换时,摄像头预览会冻结。通过调用前置或后置摄像头开始活动时
boolean opened = safeCameraOpenInView(view, Camera.CameraInfo.CAMERA_FACING_BACK)
Run Code Online (Sandbox Code Playgroud)
在片段的 OnCreateView 方法中,两个摄像头都将按预期在启动时显示。只要我在切换按钮的点击监听器中调用相同的方法,相机就会立即冻结。
这是一个我尝试过的新实现,其中所有代码都在同一个片段中,而不是基于以下问题的自定义类:自定义类相机实时预览在相机切换时冻结,但结果完全相同。我很确定我需要对表面视图做一些事情来将它绑定到新相机,但我不知道如何做到这一点。有人有一些指点吗?
我的活动:
public class Camera2ActivityFragment extends Fragment {
// Native camera.
private Camera mCamera;
// View to display the camera output.
private CameraPreview mPreview;
// Reference to the containing view.
private View mCameraView;
/**
* Default empty constructor.
*/
public Camera2ActivityFragment(){
super();
}
/**
* Static factory method
* @param sectionNumber
* @return
*/
public static Camera2ActivityFragment newInstance(int sectionNumber) {
Camera2ActivityFragment fragment = new Camera2ActivityFragment();
//Bundle args …Run Code Online (Sandbox Code Playgroud) 我正在制作一个简单的演示,我可以在我的活动中将相机预览提供给SurfaceView.我发现如果你没有设置支持的大小,setParameters()会失败.但即使我这样做,我也得到同样的致命异常.请帮忙!
码:
package ank.altcamera;
import java.io.IOException;
import java.util.List;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.Switch;
import android.widget.Toast;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.ImageFormat;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.Size;
public class CameraActivity extends Activity implements SurfaceHolder.Callback{
Switch sw_flash;
SeekBar sb_zoom;
Camera cam;
SurfaceView surf_view;
SurfaceHolder surf_holder;
boolean preview;
final int TAKE_PICTURE = 100;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
sw_flash = (Switch) findViewById(R.id.sw_flash);
sb_zoom = (SeekBar) findViewById(R.id.seekBar1); …Run Code Online (Sandbox Code Playgroud) 我试图在自定义SurfaceView中设置相机预览,但每次执行初始化方法时都会出现异常.
以下是相机预览初始化的代码:
private void init(Context context)
{
setFocusable(true);
mRecording = false;
fileRW = new FileReaderWriter();
frameCount = 0;
if(mCamera == null)
{
mCamera = Camera.open();
}
Parameters parameters = mCamera.getParameters();
parameters.setPictureFormat(PixelFormat.JPEG);
mCamera.setParameters(parameters);
try {
mCamera.setPreviewDisplay(surfaceHolder);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mCamera.startPreview();
}
Run Code Online (Sandbox Code Playgroud)
每次我尝试执行该方法时,该行都会mCamera.setPreviewDisplay(surfaceHolder);抛出异常(setPreviewDisplay failed).
有谁知道什么可能是错的?我非常感谢你的任何帮助.
谢谢!`
我在Moto E上运行相机时遇到问题.在其他设备上我的代码运行良好但不在Moto E上.可能是因为Moto E没有闪光灯或辅助相机的原因.
private synchronized void startCameraPreview() {
try {
previewView.getHolder().addCallback(this);
previewView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
camera.setPreviewCallback(null);
camera.setPreviewDisplay(surfaceHolder);
camera.startPreview();
}
catch (Exception exception) {
Log.e(TAG, "Can't start camera preview due to Exception", exception);
listener.onCameraError();
}
}
Run Code Online (Sandbox Code Playgroud)
这会给出以下粘贴的错误:
Can't start camera preview due to Exception
java.io.IOException: setPreviewTexture failed
at android.hardware.Camera.setPreviewDisplay(Native Method)
at android.hardware.Camera.setPreviewDisplay(Camera.java:474)
at CameraFragment.startCameraPreview(CameraFragment.java:149)
at CameraFragment.surfaceCreated(CameraFragment.java:472)
at android.view.SurfaceView.updateWindow(SurfaceView.java:572)
at android.view.SurfaceView.access$000(SurfaceView.java:86)
Run Code Online (Sandbox Code Playgroud)
如果有人知道如何处理这个问题?
我正在尝试在我的应用中加入一些与相机相关的功能.我手动打开摄像头,并获得与预览流setPreviewCallback和startPreview.我不使用曲面来显示预览,但我确实将其设置为符合Camera API文档.这是我打开相机的方式:
public Camera openCamera(int id)
{
m_openedCamera = Camera.open(id);
m_surfaceHolder = new SurfaceView(MyApplication.instance().getApplicationContext()).getHolder();
Assert.assertNotNull(m_openedCamera);
m_openedCamera.setPreviewDisplay(m_surfaceHolder);
m_openedCameraFacing = facing;
if (m_openedCamera != null)
m_openedCamera.setPreviewCallback(this);
m_openedCamera.startPreview();
}
Run Code Online (Sandbox Code Playgroud)
这就是我发布它的方式,这里没什么好看的:
public void releaseCamera()
{
if (m_openedCamera != null)
{
m_openedCamera.stopPreview();
m_openedCamera.release();
m_openedCamera = null;
}
}
Run Code Online (Sandbox Code Playgroud)
它有点起作用,但是当我释放相机时,我得到一个异常"在释放后调用的方法()".澄清一下:相机发布后我不会调用任何相机方法.在调试器下进行双重和三重检查,我没有.我认为这里有混合的同步和异步调用会导致问题.