Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Google Play服务的Android Studio中的编译问题_Java_Android_Android Studio_Google Play Services - Fatal编程技术网

Java 使用Google Play服务的Android Studio中的编译问题

Java 使用Google Play服务的Android Studio中的编译问题,java,android,android-studio,google-play-services,Java,Android,Android Studio,Google Play Services,我正在运行AndroidStudio 0.8.4,并已在AndroidStudio 0.8.2上尝试过此功能。 我正在运行JavaJDK1.8.0_11,并在JDK1.8.0_05中尝试了这一点 每当我尝试构建我的android studio项目--build->Rebuild project--或尝试运行应用程序时,我都会遇到以下错误: 编译器(1.8.0_11)中发生异常。请在Java开发者连接中提交一个bug(http://java.sun.com/webapps/bugreport)在检

我正在运行AndroidStudio 0.8.4,并已在AndroidStudio 0.8.2上尝试过此功能。
我正在运行JavaJDK1.8.0_11,并在JDK1.8.0_05中尝试了这一点

每当我尝试构建我的android studio项目--
build->Rebuild project
--或尝试运行应用程序时,我都会遇到以下错误:

编译器(1.8.0_11)中发生异常。请在Java开发者连接中提交一个bug(http://java.sun.com/webapps/bugreport)在检查错误巡游是否重复之后。在报告中包括您的程序和以下诊断。非常感谢。
com.sun.tools.javac.code.Symbol$CompletionFailure:找不到java.lang.invoke.MethodType的类文件

这是我在:移动模块中的build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 'android-L'
    buildToolsVersion '20.0.0'

    defaultConfig {
        applicationId "com.energy.dartboard.dartboard"
        minSdkVersion 17
        targetSdkVersion 'L'
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    apply plugin: 'findbugs'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    wearApp project(':wear')
    compile 'com.google.android.gms:play-services:5.0.89'
}
我怀疑这是Google Play Services的一个问题,因为我在尝试使用Google+登录按钮在设计视图中预览我的xml布局文件(如下)时出现以下错误:

java.lang.VerifyError: Expecting a stackmap frame at branch target 15
Exception Details:
  Location:
    com/google/android/gms/common/SignInButton.C(Landroid/content/Context;)V @4: ifnull
  Reason:
    Expected stackmap frame at this location.
  Bytecode:
    0000000: 2ab4 0016 c600 0b2a 2ab4 0016 b600 262a
    0000010: 2b2a b400 182a b400 15b8 0029 b500 16a7
    0000020: 001c 4d12 0512 04b8 001a 572a 2b2a b400
    0000030: 182a b400 15b8 0022 b500 162a 2ab4 0016
    0000040: b600 232a b400 162a b600 25b6 001b 2ab4
    0000050: 0016 2ab6 001c b1                      
  Exception Handler Table:
    bci [15, 31] => handler: 34

    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2493)
    at java.lang.Class.getConstructor0(Class.java:2803)
    at java.lang.Class.getConstructor(Class.java:1718)
    at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:310)
    at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:100)
    at com.android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.java:172)
    at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207)
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:132)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:802)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:778)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:805)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:778)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:805)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:778)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:500)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:381)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:400)
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:329)
    at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:332)
    at com.android.tools.idea.rendering.RenderService$3.compute(RenderService.java:575)
    at com.android.tools.idea.rendering.RenderService$3.compute(RenderService.java:564)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:932)
    at com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:564)
    at com.android.tools.idea.rendering.RenderService.render(RenderService.java:691)
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:604)
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1900(AndroidLayoutPreviewToolWindowManager.java:80)
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.java:546)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178)
    at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171)
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7.run(AndroidLayoutPreviewToolWindowManager.java:541)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310)
    at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227)
    at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
    at com.intellij.util.Alarm$Request$1.run(Alarm.java:327)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
和XML文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.energy.dartboard.dartboard.LoginActivity" >

    <!-- Login Progress -->
    <ProgressBar
        android:id="@+id/login_progress"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:visibility="gone"
    />

    <!-- Login Form -->
    <ScrollView
        android:id="@+id/login_form"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <Button
                android:id="@+id/facebook_sign_in_button"
                android:text="Sign In with Facebook"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
            />

            <com.google.android.gms.common.SignInButton
                android:id="@+id/plus_sign_in_button"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="32dp"
            />

            <LinearLayout
                android:id="@+id/plus_sign_out_buttons"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:weightSum="2">

                <Button
                    android:id="@+id/plus_sign_out_button"
                    style="?android:textAppearanceSmall"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="@string/plus_sign_out"
                />

                <Button
                    android:id="@+id/plus_disconnect_button"
                    style="?android:textAppearanceSmall"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="@string/plus_disconnect"
                />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/email_login_form"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <AutoCompleteTextView
                    android:id="@+id/email"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/prompt_email"
                    android:inputType="textEmailAddress"
                    android:maxLines="1"
                    android:singleLine="true"
                />

                <EditText
                    android:id="@+id/password"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/prompt_password"
                    android:imeActionId="@+id/login"
                    android:imeActionLabel="@string/action_sign_in_short"
                    android:imeOptions="actionUnspecified"
                    android:inputType="textPassword"
                    android:maxLines="1"
                    android:singleLine="true"
                />

                <Button
                    android:id="@+id/email_sign_in_button"
                    style="?android:textAppearanceSmall"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="16dp"
                    android:text="@string/action_sign_in"
                    android:textStyle="bold"
                />

                <Button
                    android:id="@+id/sign_in_later_button"
                    style="?android:textAppearanceSmall"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="@string/sign_in_later"
                    android:textStyle="bold"
                    android:onClick="signUpLater"
                />

            </LinearLayout>
        </LinearLayout>
    </ScrollView>

</LinearLayout>

它可以很好地呈现预览,但是没有Google+登录按钮,并且显示错误消息。其他没有Google Play服务的xml布局文件呈现得很好,没有错误

昨天这个项目没有问题,但当我今天启动android studio并尝试构建它时,它给了我这个错误


注意:我已尝试清理/重新构建项目,使android studio的缓存无效,并重新启动android studio。

我认为Java 8还不可能实现android开发。但使用Java7肯定是可能的。尝试切换到Java 7:

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

我没有使用AndroidStudio,但我想您还需要在IDEGUI的其他地方更改项目设置(将其指向Java7SDK,并将语言级别设置为Java7)

如果这是真的,那就很不幸了,因为我非常喜欢Java8中新的流api和lambda表达式支持。我现在就试试。不过,我想我以前试过这个,你可以试试Kotlin:)关于你的问题,我认为我错了,问题不在Java 8中(仅?),但可能是IDE错误。我不确定我是否正确地理解了你,但你什么时候会出错?当您尝试在UI设计器中加载布局xml时,还是在构建项目时?如果是第二个,它应该是Java 8,如果是第一个,它应该是IDE错误。这是两个不同地方的两个不同错误。我刚刚澄清了我的问题。好的,在构建过程中未找到
java.lang.invoke.MethodType的错误必须来自java 8。第二个错误是IDE布局渲染器中的一个小错误,它不能影响构建。我是对的,删除Google+登录按钮并不能解决“MethodType not found”的问题吗?你是对的。Android Studio重新启动花了一段时间,但一旦启动,它似乎就可以工作了(除了nullpointerexception之外,但这是一个完全不同的问题)。无论如何,我找到了一个关于retro lambda项目的解决方案,该项目将java 8字节码转换回7(通过一些我不懂的疯狂巫术),我将在本文中进行尝试。