小编Neo*_*eoh的帖子

如何在构建Android Studio项目时添加Stacktrace或调试选项

我试图在控制台输出中调查项目构建错误,如下所示:

:myapp:processDebugResources FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugResources'.
...
...

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Run Code Online (Sandbox Code Playgroud)

我怀疑它与资源未找到错误有关.我的问题是,在IDE级别,我如何添加--stacktrace--debug选项,以便它可以为我调试生成更多信息?

android stack-trace android-studio

134
推荐指数
6
解决办法
13万
查看次数

如何跨多个项目共享单个库源

标题中的问题.这里提出一个类似的问题,唯一的解决方法是将项目发布到本地Maven存储库.

Android Studio 0.5中是否修复了此问题(如某些人所声称的那样).+?在其发行说明中,有一条声明说"支持模块内容根目录之外的源文件夹".这是否意味着我们最终可以从项目文件夹外部导入库?

我尝试了File-> Import Project ..但它不起作用.

编辑2:查看最新解决方案的已接受答案(截至0.8.+)

编辑:

我的项目目录结构只有一个模块main,如下所示

MyApp
    main
        build.gradle
        src
    build.gradle
    settings.gradle
Run Code Online (Sandbox Code Playgroud)

库项目目录只有一个名为like的模块lib(它们都是在创建新库项目时自动生成的)

MyLibrary
    lib
        build.gradle
        src
    build.gradle
    settings.gradle
Run Code Online (Sandbox Code Playgroud)

以下行添加到MyApp/settings.gradle:

include ':main', '..:MyLibrary'
Run Code Online (Sandbox Code Playgroud)

以下内容添加到MyApp/main/build.gradle:

dependencies {
    compile project(':..:MyLibrary')
}
Run Code Online (Sandbox Code Playgroud)

结果是以下错误:

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':main'.
> Configuration with name 'default' not found.
Run Code Online (Sandbox Code Playgroud)

作为旁注,库项目MyLibrary本身可以编译而不会出错.问题似乎是settings.gradle无法识别图书馆项目结构.

android android-studio

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

Lollipop RippleDrawable vs Pre-Lollipop的选择器

我有不同的draw9patch按钮png作为背景.目前按钮的控制方式selector如下:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@drawable/pressed" android:state_pressed="true"/>
  <item android:drawable="@drawable/disabled" android:state_enabled="false"/>
  <item android:drawable="@drawable/focused" android:state_focused="true"/>
  <item android:drawable="@drawable/default"/>
</selector>
Run Code Online (Sandbox Code Playgroud)

对于Android Lollipop,他们有RippleDrawable触摸效果,如下所示:

<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:colorControlHighlight">
    <item>
    ...
    </item>
</ripple>
Run Code Online (Sandbox Code Playgroud)

关于新的触摸波纹效果:

1:我可以将draw9patch设置为背景RippleDrawable吗?

2:我如何容纳以上两种不同的xml我想遵循材料设计?我是否必须为新的文件夹/布局xml分叉RippleDrawable

android material ripple rippledrawable android-5.0-lollipop

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

在Android中显示漂亮的数学公式

令人遗憾的是,在Android平台上,科学和数学从未得到足够的重视.也许这是一个简单的问题,但我在javascript中是一个完全的家伙,所以我很难理解如何解决这个问题.

我想做的很简单:我只需要使用渲染数学方程.它可以是MathJax或JqMath或任何小而快的东西.如果我必须在webview中执行此操作,如何在同一webview中的段落和格式化方程式中显示纯文本?

(任何人都提出其他显然有效的方法,我会认为这也是解决方案)

我做了什么:

我开始使用MathJax将公式放入webview(如果有任何成功的jqMath用例,我不知道吗?有人愿意分享他们的经验吗?)我可以重现所有功能,就像独立的MathJax应用程序一样.在该应用程序中,用户将字符串键入EditText字段,一旦用户按下按钮进行确认,MathJax将在Latex中呈现公式.

我不需要用户确认.我认为这应该更容易,因为没有用户交互,但不知何故方程式永远不会显示.我知道我必须遗漏一些东西,因为独立MathJax中的代码用于用户输入.我应该修改哪部分代码直接从字符串中呈现方程,比如说\ sqrt {b ^ 2-4ac}?这是webview的初始标题:

WebView w = (WebView) findViewById(R.id.webview);
w.getSettings().setJavaScriptEnabled(true);
w.getSettings().setBuiltInZoomControls(true);
w.loadDataWithBaseURL("http://bar", "<script type='text/x-mathjax-config'>"
                        +"MathJax.Hub.Config({ showMathMenu: false, "
                        +"jax: ['input/TeX','output/HTML-CSS'], "
                        +"extensions: ['tex2jax.js'], " 
                        +"TeX: { extensions: ['AMSmath.js','AMSsymbols.js',"
                        +"'noErrors.js','noUndefined.js'] } "
                        +"});</script>"
                        +"<script type='text/javascript' "
                        +"src='file:///android_asset/MathJax/MathJax.js'"
                        +"></script><span id='math'></span>","text/html","utf-8","");
Run Code Online (Sandbox Code Playgroud)

以下是用户在输入edittext后按下按钮时加载原始webview的方式:

WebView w = (WebView) findViewById(R.id.webview);
EditText e = (EditText) findViewById(R.id.edit);
w.loadUrl("javascript:document.getElementById('math').innerHTML='\\\\["
                  +doubleEscapeTeX(e.getText().toString())
                  +"\\\\]';");
w.loadUrl("javascript:MathJax.Hub.Queue(['Typeset',MathJax.Hub]);");

private static String doubleEscapeTeX(String s) {
    String t="";
    for (int i=0; i < s.length(); …
Run Code Online (Sandbox Code Playgroud)

javascript math android mathjax jqmath

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

Android支持OpenCL吗?

最近我想在Android上使用OpenCL开发并行计算应用程序.据我所知,Android系统不包含"libopencl.so",但仍有一些网站或博客在Android上显示OpenCL开发.Android支持OpenCL吗?如果是这样,我应该怎么做才能在Android上开发OpenCL?

android opencl

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

如何用活动结果 API 替换 startActivityForResult?

我有一个主要活动,它作为根据条件调用不同活动的入口点。其中,我使用 Firebase Auth 来管理用户登录:

startActivityForResult(
            AuthUI.getInstance().createSignInIntentBuilder()
                    .setAvailableProviders(providers)
                    .build(),
            RC_SIGN_IN)
Run Code Online (Sandbox Code Playgroud)

我覆盖onActivityResult()以区分返回的意图/数据,例如:

 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    when (requestCode) {

        REQUEST_CODE_1 -> {
          // update UI and stuff
        }

        RC_SIGN_IN -> {
          // check Firebase log in
        }
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

使用文档强烈推荐的 Activity Result APIs ,我知道我应该在启动prepareCall()之前创建ActivityResultLauncher并确保活动在启动时处于创建状态,但我仍然不明白如何优雅地处理多个活动结果(在至少,在一个地方)就像在onActivityResult().

这篇文章,似乎我需要实现多个ActivityResultContract类型的子内部类(因此是多个prepareCall()?),因为它们应该是不同的合同,我说得对吗?有人可以向我展示一些反映上述onActivityResult()逻辑的骨架示例吗?

android android-activity onactivityresult androidx

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

bitmap.getWidth()或bitmap.getHeight()的单位是多少

开发者网站只是声明getHeight()将返回位图的高度,但有人可以告诉我这是像素单位还是dp单位?

android bitmap

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

Android中的SwiperefreshLayout

SwipeRefreshLayout在下面的布局中使用:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="@color/homePageBackground"
  android:orientation="vertical" >


<android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/swipeRefreshLayout_listView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
<fragment
        android:id="@+id/announcementHomefragment"
        android:name="in.test.app.AnnouncementFragment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/homePageBackground" >

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="15dp"
                android:background="@color/homePageBackground" >

                <TextView
                    android:id="@+id/newsTitle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginLeft="15dp"
                    android:layout_marginTop="5dp"
                    android:gravity="center"
                    android:text="@string/new_list"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textColor="@color/white"
                    android:textStyle="bold" />

                <fragment
                    android:id="@+id/newshomefragment"
                    android:name="in.test.app.NewsFragment"
                    android:layout_width="wrap_content"
                    android:layout_height="190dp"
                    android:layout_below="@id/newsTitle"
                    android:layout_marginTop="-15dp" />

                <TextView
                    android:id="@+id/productTitle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/newshomefragment"
                    android:layout_gravity="center"
                    android:layout_marginLeft="15dp"
                    android:layout_marginTop="5dp"
                    android:gravity="center"
                    android:text="@string/product_in_home"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textColor="@color/white"
                    android:textStyle="bold" />

                <fragment
                    android:id="@+id/proCategoryhomefragment"
                    android:name="in.test.app.CategoryFragment"
                    android:layout_width="wrap_content"
                    android:layout_height="170dp" …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-fragments uiswipegesturerecognizer swiperefreshlayout

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

GLES10.glGetIntegerv仅在Lollipop中返回0

这段代码曾用于我的Nexus 7 2012 KitKat:

int[] maxSize = new int[1];
GLES10.glGetIntegerv(GL10.GL_MAX_TEXTURE_SIZE, maxSize, 0);
Run Code Online (Sandbox Code Playgroud)

在KitKat中我可以正确获取最大像素值,但在升级到工厂映像Lollipop后,这段代码会导致问题,因为它只返回0.当达到此方法时,logcat显示此输出:

E/libEGL? call to OpenGL ES API with no current context (logged once per thread)
Run Code Online (Sandbox Code Playgroud)

我已经android:hardwareAccelerated="true"在我的Manifest.xml中了.是否有任何我不知道的API更改,导致上述代码无法使用?请指教.

android opengl-es android-5.0-lollipop

16
推荐指数
1
解决办法
8111
查看次数

如何在TextView中创建垂直对齐的上标和下标

在下图中的示例中:

在此输入图像描述

如何使上标和下标数字对齐以产生如下的常见科学记数法

在此输入图像描述

TextView?如果有使用的方式SpannableReplacementSpan我想看到一个有效的例子.谢谢.

android superscript textview subscript

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