标签: android

Android studio 2.3:无法初始化类org.jetbrains.kotlin.android.actions.NewKotlinActivityAction

我刚刚从金丝雀频道更新了Android studio 2.2.22.3.下载完成并应用路径文件后,android studio正在重启.但重新启动android studio后,我在对话框中出现以下错误:

无法加载项目:com.intellij.ide.plugins.PluginManager $ StartupAbortedException:com.intellij.diagnostic.PluginException:无法初始化类org.jetbrains.kotlin.android.actions.NewKotlinActivityAction [插件:org.jetbrains.kotlin]

请参阅下面的屏幕截图以获取更多信息:

android studio kotline错误1

在通过ok关闭对话框并重新启动android studio之后,我也无法打开我的项目或创建新项目.

android studio kotline错误2

更新android studio后有没有人面临同样的问题?

android intellij-idea kotlin android-studio android-studio-2.3

36
推荐指数
3
解决办法
1万
查看次数

在包中找不到属性"layout_constraintLeft_toLeftOf"的资源标识符

我使用的是Android SDK 2.2.3.我正在关注一本关于Android编程的书.

代码是:

<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="eu.a123sandberg.webview.MainActivity"
    tools:layout_editor_absoluteX="0dp"
    tools:layout_editor_absoluteY="81dp">

    <WebView
        android:layout_width="384dp"
        android:layout_height="511dp"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="0dp"
        app:layout_constraintLeft_toLeftOf="@+id/activity_main"
        tools:layout_constraintLeft_creator="0"
        app:layout_constraintTop_toTopOf="@+id/activity_main"
        tools:layout_constraintTop_creator="0"
        app:layout_constraintRight_toRightOf="@+id/activity_main"
        tools:layout_constraintRight_creator="0"
        app:layout_constraintBottom_toBottomOf="@+id/activity_main"
        tools:layout_constraintBottom_creator="0"
        />

</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

我用android.support.constraint.ConstraintLayout尝试了三个不同的例子,在所有情况下我都会收到相同的错误消息:

Error:(13) No resource identifier found for attribute 'layout_constraintLeft_toLeftOf' in package 'eu.a123sandberg.webview'
Run Code Online (Sandbox Code Playgroud)

build.gradle文件包含:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "eu.a123sandberg.webview"
        minSdkVersion 21
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
                                                                                  testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-                   android.txt'), 'proguard-rules.pro'
        }
     }
}

dependencies …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-studio android-constraintlayout

36
推荐指数
1
解决办法
3万
查看次数

android studio 2.3即时运行不起作用

我已经将android studio从2.2更新到2.3,然后我发现Instant run无法运行.

执行时出错:am startservice com.example.codingmaster.testcc/com.android.tools.fd.runtime.InstantRunService启动服务:Intent {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] cmp = com.example.codingmaster.testcc/com.android.tools.fd.runtime.InstantRunService}错误:未找到; 没有服务开始.

我也尝试重新安装android studio 2.3但不行.

android android-studio

36
推荐指数
5
解决办法
3万
查看次数

Cordova:未找到Android SDK.确保已安装.如果它不在默认位置,请设置ANDROID_HOME环境变量

我有问题用Cordova构建android,当我执行时cordova build android,我收到此错误:

Error: Android SDK not found. Make sure that it is installed. If it is not at the default location, set the ANDROID_HOME environment variable.
Run Code Online (Sandbox Code Playgroud)

我这样做是为了解决它:

sudo nano  ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

并添加此行:

export PATH=${PATH}:/Users/myname/Library/Android/sdk/platform-tools:/Users/myname/Library/Android/sdk/tools
Run Code Online (Sandbox Code Playgroud)

这个:

source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

但是我在构建时再次出现错误,我该如何解决?

更新:

这是我在bash中添加的行:

export PATH=${PATH}:/Users/myname/Library/Android/sdk/platform-tools:/Users/myname/Library/Android/sdk/tools
export ANDROID_HOME=/Users/myname/Library/Android/sdk
Run Code Online (Sandbox Code Playgroud)

android cordova

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

删除android.widget.Toolbar阴影

使用API​​21 + Toolbar:

// Toolbar
Toolbar toolbar = new Toolbar(this);
toolbar.showOverflowMenu();
Run Code Online (Sandbox Code Playgroud)

想彻底删除它的影子.setElevation(0)因为getElevation()已经返回,所以什么都不做0.

有材料设计参考:

https://material.io/guidelines/layout/structure.html#structure-toolbars

有开发参考:

https://developer.android.com/reference/android/widget/Toolbar.html

但我没有看到任何与阴影相关的信息. Toolbar

问题:如何完全删除/隐藏Toolbar阴影?

java android android-styles

36
推荐指数
6
解决办法
3万
查看次数

Content Provider是Repository Pattern的实现吗?

存储库模式Hieatt和Rob Mee定义为设计模式,模式使用类似集合的接口来访问域对象,从而在域和数据映射层之间进行调解.

MSDN存储库模式

基本上,它将一个或多个I/O设备(云,磁盘,数据库等)抽象为一个类似于集合的接口,您可以在其中读取,写入,查找和删除数据.

Fernando Cejas的Android清洁架构中,应用程序所需的所有数据都来自此层,通过存储库实现(接口位于域层中),该实现使用存储库模式,其策略通过工厂选择不同的数据源,具体取决于一定条件下.

内容提供商

然而,正如Douglas Schmidt教授在Coursera课程中所指出的,内容提供商管理和调解对一个或多个应用程序的中央数据库的访问.

内容提供商

Android编程一书中,内容提供程序用作RESTful Web服务的Facade.这种方法最初由 Virgil Dobjanschi在Google I/O 2010期间提出.

因此,为什么不使用它作为存储库模式本身而不是使用内容提供程序来访问本地SQLite数据库

在此输入图像描述

android design-patterns android-mvp

36
推荐指数
4
解决办法
2975
查看次数

Google Play服务返回使用非Google密钥签名的令牌

我有一个Android客户端通过使用从Google Play服务获取身份验证令牌GoogleAuthUtil.getToken(Context context, Account account, String scope).

然后将其发送到后端(Go)服务器,该服务器检查该令牌是否来自https://www.googleapis.com/oauth2/v1/cert中的一个Google签名证书.为此,它需要在令牌标头中查找分配给"kid"的证书.

99%的情况下,这很好用,但我经常会遇到"孩子"与任何已发布的Google证书不对应的情况,因此我无法授权令牌.

编辑:

我已经在服务器上添加了大量的日志记录来尝试跟踪它,并且有一些关系值得注意:

  1. 任何给定的无效kid仅用于单个用户.我经常会在同一个用户的几天内看到多个具有给定无效的请求kid,但只能来自该用户.
  2. 提供无效的用户kid从不kid对任何请求使用有效,或者对请求使用任何其他kid请求,即使它们相隔数天.Afaik Google每24小时左右循环一次证书.
  3. 许多用户使用较旧的客户端版本.大多数用户在发布新版本的一两天内升级,但大多数使用无效证书密钥的用户都使用几周前的版本.
  4. 这些要求来自全球各地,与我们的用户群一致.
  5. 这些要求来自于我们的用户群.
  6. 这些请求来自各种设备,制造商和型号.

我目前的想法是,它可能来自从谷歌播放以外的网站下载APK的用户,但我现在无法验证这一点.

编辑:有一个问题跟踪器,但它似乎已被标记为低优先级.如果有人遇到此问题,请在跟踪器上告知.https://issuetracker.google.com/issues/37734997

android certificate jwt google-play-services

36
推荐指数
1
解决办法
730
查看次数

Google Play错误:无法上传仅测试版APK

在尝试将第一个apk上传到GooglePlay控制台中最近创建的项目时,我收到此错误:

您无法上传仅限测试的APK

根据今天的搜索结果,Google会为我提供0个结果.

我还提交了Play Console的票证.如果有任何答案,将在这里更新.

更新2017年11月29日

正如@ paul-lammertsma建议的那样,有一种解决方法.仍然很高兴知道为什么我们需要采用gradle方式,我们不能通过IDE做到这一点.

android google-play

36
推荐指数
4
解决办法
9183
查看次数

是否真的可以避免Java终结器用于本机对等体对象生命周期管理?

根据我作为C++/Java/Android开发人员的经验,我已经了解到终结器几乎总是一个坏主意,唯一的例外是管理Java所需的"本地对等"对象来调用C/C++代码通过JNI.

我知道JNI:正确管理java对象问题的生命周期,但是这个问题解决了不使用终结器的原因,对于本地对等体也是如此.因此,在上述问题中对答案的解释是一个问题/讨论.

Joshua Bloch在他的Effective Java中明确将此案例列为他不使用终结器的着名建议的例外:

终结器的第二个合法使用涉及与本地对等体的对象.本机对等体是普通对象通过本机方法委托的本机对象.由于本机对等体不是普通对象,因此垃圾回收器不知道它,并且在回收Java对等体时无法回收它.假设本地对等方没有关键资源,终结器是执行此任务的适当工具.如果本机对等体拥有必须立即终止的资源,则该类应具有显式终止方法,如上所述.终止方法应该执行释放关键资源所需的任何操作.终止方法可以是本机方法,也可以调用一个.

(另请参阅"堆栈交换中的为什么最终方法包含在Java中?"问题)

然后我看到真正有趣的如何在Google I/O '17中管理Android演讲中的本机内存,其中Hans Boehm实际上主张使用终结器来管理java对象的本地对等,同时引用Effective Java作为参考.在快速提及为什么显式删除本地对等或基于范围的自动关闭可能不是一个可行的替代方案后,他建议使用java.lang.ref.PhantomReference.

他提出了一些有趣的观点,但我并不完全相信.我将尝试通过其中一些并陈述我的疑虑,希望有人能够进一步了解它们.

从这个例子开始:

class BinaryPoly {

    long mNativeHandle; // holds a c++ raw pointer

    private BinaryPoly(long nativeHandle) {
        mNativeHandle = nativeHandle;
    }

    private static native long nativeMultiply(long xCppPtr, long yCppPtr);

    BinaryPoly multiply(BinaryPoly other) {
        return new BinaryPoly ( nativeMultiply(mNativeHandle, other.mNativeHandler) );
    }

    // …

    static native void nativeDelete (long …
Run Code Online (Sandbox Code Playgroud)

java java-native-interface android googleio

36
推荐指数
2
解决办法
1282
查看次数

使用RecyclerView的TableLayout

只有两个布局管理器RecyclerView:LinearLayoutManagerGridLayoutManager.有没有办法TableLayout用作布局管理器RecyclerView?有什么建议吗?

编辑:我想知道是否有任何解决方案没有从零编写布局管理器.TableLayout行为对我来说已经足够了,只想为处理大量数据时的性能问题添加回收功能.

并且创建一个查看listview的表并不能解决我的问题,因为我的表非常动态,我甚至不知道列名,客户决定表的所有细节.因此,单元格是自定义的,列宽需要根据内容长度自动调整大小.我不认为listview可以处理这个问题.

在此先感谢您的帮助.

android android-recyclerview

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