小编hoo*_*d82的帖子

检测Android应用程序升级并为显示/隐藏EULA设置应用程序类布尔值

我试图检测我的应用程序何时使用BroadcastReceiver升级并在我的应用程序类中设置一个布尔值.此布尔值将与其他一些布尔值一起使用,以确定是否向用户显示EULA对话框.

我相信我已经完全正确地设置了它,但EULA仍然会在不应该出现的时候出现.特别是当用户已经在先前版本中接受了EULA时,EULA在升级版本(由我手动设置)中没有更改,并且应用程序正在升级.

我认为这不起作用的原因是因为我的应用程序没有运行,因此没有调用isAppUpgrade()方法并设置正确的布尔标志.有人可以确认是这种情况,或者我的代码中有什么问题吗?

仅供参考 - 在我的Main活动中首先调用EULA.show(Activity,boolean,boolean)静态方法.

这是一些代码

应用类

public class MFCApplication extends Application {

    private boolean isUpgrade = false;

    /**
     * Returns a manually set value of whether the EULA has changed in this version of the App
     * @return true/false
     */
    public boolean hasEULAChanged() {
        return false;
    }

    /**
     * Returns whether or not the application has been upgraded.  Set by the UpgradeBroadcastReceiver
     * @return true/false
     */
    public boolean isAppUpgrade() {
        return isUpgrade;
    }

    /**
     * Method called by …
Run Code Online (Sandbox Code Playgroud)

java android broadcastreceiver

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

无法使用ADT v14调试库项目 - 找不到源

自从升级我当前的项目以使用Eclipse中的新R14工具以来,我现在无法调试我的库项目中存在的任何代码.

当我在我的库项目代码中找到一个断点时,而不是Eclipse打开原始源文件,它打开了JAR中包含的源文件的只读副本,并显示消息"Source not found".

我一直在寻找解决方案,但还没有遇到任何问题.有没有人有任何建议?无法调试是一件非常痛苦的事.

编辑

这个问题又回来了,我再也无法调试了.我没有改变任何项目设置或任何东西.很沮丧.

eclipse android adt android-library

29
推荐指数
2
解决办法
6245
查看次数

Android TimePicker AM/PM按钮未调用onTimeChanged

我在应用程序中实现TimePicker时遇到一些问题,允许用户在插入数据库记录之前更改数据库记录的时间.

问题是当按下AM/PM按钮时,不会调用onTimeChanged(View,int,int)方法.每当我更改TimePicker的小时或分钟值时,都会调用onTimeChanged().

场景:

  • 用户只需单击AM/PM按钮:AM/PM 不会更新
  • 用户单击"小时/分钟":时间已更新
  • 用户单击AM/PM按钮然后更改小时/分钟:更新时间和AM/PM

我错误地认为应该能够点击AM/PM按钮来更新时间而不必在上午/下午按钮之后更改时间值吗?

我已经整理了一个小的测试项目来复制这个,这里是代码:

活动

public class TestActivity extends Activity implements OnTimeChangedListener {

    private Calendar mCalendar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.timepicker);

        mCalendar = Calendar.getInstance();

        TimePicker tp = (TimePicker)findViewById(R.id.timepicker);
        tp.setIs24HourView(false);
        tp.setOnTimeChangedListener(this);
    }

    @Override
    public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
        Log.d("TAG", "In onTimeChanged");
        mCalendar.set(mCalendar.get(Calendar.YEAR),
                      mCalendar.get(Calendar.MONTH),
                      mCalendar.get(Calendar.DAY_OF_MONTH),
                      hourOfDay,
                      minute);

        setCalendarTime();
    }

    private void setCalendarTime() {
        Date date = mCalendar.getTime();

        if (date != null) {
            SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yy '@' h:mm …
Run Code Online (Sandbox Code Playgroud)

android timepicker

13
推荐指数
4
解决办法
7587
查看次数

CoordinatorLayout和ImageView在滚动时调整宽度的问题

我试图把一个ImageViewCollapsingToolbarLayout其中占据了整个屏幕上的负载,当你滚动内容时,16:9高分辨率图像的宽度大小调整,直到图像占据屏幕的整个宽度.那时,我希望图像的视差app:layout_collapseParallaxMultiplier为0.5

使用此XML布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <ImageView
                android:id="@+id/img_hero"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:adjustViewBounds="true"
                android:scaleType="centerCrop"
                android:src="@drawable/lake"
                app:layout_collapseMode="parallax"
                app:layout_collapseParallaxMultiplier="0.5"/>

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="none"
                app:popupTheme="@style/AppTheme.PopupOverlay"/>

        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_scrolling"/>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/fab_margin"
        app:layout_anchor="@id/app_bar"
        app:layout_anchorGravity="bottom|end"
        app:srcCompat="@android:drawable/ic_dialog_email"/>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

完成以下任务:

在此输入图像描述

以下显示图像的实际边界:

在此输入图像描述

当我滚动时,我希望更多的图像宽度显示为图像的高度缩小并导致以下结果:

在此输入图像描述

一旦我到达这一点,这就是我希望0.5的崩溃视差乘数生效的地方.

我已经搞砸了许多不同的滚动行为,尝试了所有的ImageViewscrollTypes,但没有用.有没有人知道这是否可能,如果可以的话,可以提供任何关于我做错或不做的指示.

我是否需要创建自己的自定义CoordinatorLayout.Behavior才能完成此操作?

android android-imageview parallax android-coordinatorlayout android-collapsingtoolbarlayout

10
推荐指数
1
解决办法
2148
查看次数

Jenkins Google Play Android Publisher插件androidApkMove不会在曲目之间移动发行说明

我刚刚为Jenkins添加并实施了Google Play Android Publisher插件,用于上传APK并在Google Play控制台中的曲目之间移动它们.

我正在使用插件的1.8版本.

https://github.com/jenkinsci/google-play-android-publisher-plugin https://jenkins.io/doc/pipeline/steps/google-play-android-publisher/#androidapkmove-move-android-apks-到-A-不同释放轨道

上传工作完美无缺,甚至可以正确地将指定语言的发行说明放入Google Play,方法是:

def getDeployNotes() {
    return [language: 'en-US', text: "${env.DEPLOY_NOTES}"]
}

androidApkUpload googleCredentialsId        : signingCredential,
                 apkFilesPattern            : "app/build/outputs/apk/${variant.flavor}/${variant.type}/*.apk",
                 deobfuscationFilesPattern  : "app/build/outputs/mapping/${variant.flavor}/${variant.type}/mapping.txt",
                 trackName                  : 'alpha',
                 recentChangeList           : [getDeployNotes()]
Run Code Online (Sandbox Code Playgroud)

它在Play控制台的Alpha Track中生成此结果(请注意"这是一些部署注释,让我们看看它们在APK移动期间是否存在.")

在此输入图像描述

现在,要在Play控制台中的曲目之间移动APK,我会像这样使用"androidApkMove"

androidApkMove applicationId        : release.packageName,
               fromVersionCode      : true,
               googleCredentialsId  : release.googleCredentialsId,
               rolloutPercentage    : env.ROLLOUT_PERCENTAGE,
               trackName            : env.TO_TRACK,
               versionCodes         : env.VERSION_NUMBER
Run Code Online (Sandbox Code Playgroud)

这会在Play控制台的Beta Track中产生此结果(请注意,没有发行说明)

在此输入图像描述

我不知道该怎么做,我已经阅读了插件的文档,但我还没有找到任何东西.有没有其他人遇到过这个问题,如果是,请知道解决方案吗?手动为78种口味做这一切是不利的.

android apk jenkins google-play

7
推荐指数
1
解决办法
354
查看次数

Android SQLite INSERT

我在SQLite数据库上使用execSQL.sql INSERT strnig是

INSERT INTO Tasks 
(_id, Aircraft, Station, Discrepancy,DateCreated, CreatedBy, Status, DateClosed, ClosedBy, ArrivalFlightID, RecordChangedByUI)  
 VALUES 
('271104','   ','ORD','Critical Flight (0496/28)','9/4/2011 6:57:00 PM','SYSTEM','NEW','','null','0','N')
Run Code Online (Sandbox Code Playgroud)

表是

"create table Tasks 
(_id integer primary key, "
+ "Aircraft text null, Station text null, Discrepancy text null, DateCreated text null, CreatedBy text null, Status text null, DateClosed text, ClosedBy text null, ArrivalFlightID text null, RecordChangedByUI text null);";
Run Code Online (Sandbox Code Playgroud)

它抛出异常"Empty bindArgs"

谁能告诉我哪里出错了?

sqlite android

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

尝试String to Date解析时出现Java ParseException

我很难解析/格式化从Web服务收到的日期字符串.我试过多种方法,但没有运气.

示例日期字符串:

2011-10-05T03:00:00Z
Run Code Online (Sandbox Code Playgroud)

例外:

W/System.err(10072): java.text.ParseException: Unparseable date: "2011-10-05T05:00:00Z" (at offset 10)
W/System.err(10072):    at java.text.DateFormat.parse(DateFormat.java:626)
Run Code Online (Sandbox Code Playgroud)

示例代码:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:SSSS");
Date date = formatter.parse(info.AiringTime);
Run Code Online (Sandbox Code Playgroud)

我发现如果我删除日期和时间之间的"T"并用空格替换它,它将格式化正常.有人有什么建议吗?

--UPDATE--

在深入研究API文档之后,我发现了这个:

所有响应DateTime值均为UTC格式.您需要应用UTC偏移量来计算显示的本地时间.

DateTime是以下列格式之一指定的日期和时间值:

UTC格式:YYYY-MM-DDThh:mm:ssZ.例如:2011-03-15T02:00:00Z.

偏移的当地时间:YYYY-MM-DDThh:mm:ss +或 - hh:mm(正偏移或负偏移).例如,美国太平洋时间:2011-03-14T06:00:00-08:00.

有关UTC格式方法的任何建议吗?

java android simpledateformat parseexception

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

Android - SDK 2.2上的java.lang.VerifyError

我最近向市场推出了我的应用程序,我一直在与一位用户联系,该用户报告说,当他启动我的应用程序时,它会显示强制关闭/报告对话框.我让用户报告错误,以便我可以看到正在发生的堆栈跟踪,并且我得到了java.lang.VerifyError.

根据我的阅读,这与外部库有关,或者在java.lang中的某些方法与目标Android SDK版本不兼容.

用户使用的是Android 2.2.1,但该应用程序目前可以在许多其他2.2设备上运行,所以我试图找出从哪里开始挖掘.

问题: 是否有人建议开始寻找问题的最佳方法是什么?如果需要,我可以提供代码或更多信息,所以请告诉我.

这是堆栈跟踪:

java.lang.VerifyError: com.app.myapp.MainActivity
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1429)
at android.app.Instrumentation.newActivity(Instrumentation.java:1034)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2749)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2866)
at android.app.ActivityThread.access$2300(ActivityThread.java:140)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2181)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:5097)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

提前致谢!

编辑
根据康斯坦丁的要求添加

MainActivity.java

package com.app.myapp;

//Imports removed

public class MainActivity extends BaseActivity implements Runnable {

private LayoutInflater mInflater;
private SharedPreferences prefs;
private SharedPreferences.Editor prefsEditor;

    ....

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    loadActivity(savedInstanceState);
}

private …
Run Code Online (Sandbox Code Playgroud)

java android verifyerror gson android-2.2-froyo

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

如何将Android Uri转换为Java URI

我正在试图弄清楚如何将Android Uri转换为Java URI.我想要做的是获取一个文件,但据我所知,我需要传递一个Java URI.

这是我试图转换的我的Uri:

content://media/external/images/media/100
Run Code Online (Sandbox Code Playgroud)

而我正试图得到的:

File mediaFile = new File(new URI("android.net.Uri"));
Run Code Online (Sandbox Code Playgroud)

其中"android.net.Uri"是我的Uri对象

如果有一个不同的/更好的方法从这个内容Uri获取java.io.File对象,我会接受建议,因为到目前为止,我已经远远地搜索到了没有运气.

android uri

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

Android内存使用情况和内存中的对象未在1.6和2.1中发布

我正在检查我的应用程序内存泄漏/使用情况,并且遇到了一些奇怪的东西,到目前为止我在Android 1.6和2.1中只看到过.在应用程序中点击一下后,我为我的应用程序运行"adb shell dumpsys meminfo",我看到以下内容:

DUMP OF SERVICE meminfo:
Applications Memory Usage (kB):
Uptime: 34639912 Realtime: 153524709

** MEMINFO in pid 5778 [com.app.myapp] **
                    native   dalvik    other    total
            size:    14336     4679      N/A    19015
       allocated:    13971     4139      N/A    18110
            free:      280      540      N/A      820
           (Pss):     2986     4181    13491    20658
  (shared dirty):      972     3948      620     5540
    (priv dirty):     2876     3224    10976    17076

 Objects
           Views:      545        ViewRoots:        4
     AppContexts:       32       Activities:       31
          Assets:        2    AssetManagers:        2
   Local Binders:       43    Proxy Binders:       79
Death …
Run Code Online (Sandbox Code Playgroud)

android memory-management out-of-memory

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

Android - 使用MapView的单个Activity上的许多OutOfMemoryError异常

我从用户那里得到了很多OutOfMemoryError报告,每个报告来自同一个Activity,其中包含一个MapView.我认为这是一个孤立的例外,我的应用程序只有这一个地方,我无法弄清楚问题是什么.谁能给我一些指示,说明为什么会这样?

我已经为这个问题删除了一些不需要的代码,所以如果有人认为问题可能存在于此,我会发布它.

堆栈痕迹

Stack Trace #1

java.lang.OutOfMemoryError: bitmap size exceeds VM budget
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:677)
at com.google.android.maps.ZoomHelper.createSnapshot(ZoomHelper.java:444)
at com.google.android.maps.ZoomHelper.beginZoom(ZoomHelper.java:194)
at com.google.android.maps.MapView$2.onScaleBegin(MapView.java:371)
at android.view.ScaleGestureDetector.onTouchEvent(ScaleGestureDetector.java:216)
at com.google.android.maps.MapView.onTouchEvent(MapView.java:646)
at android.view.View.dispatchTouchEvent(View.java:3778)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:920)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:959)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:959)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:959)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1716)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1124)
at android.app.Activity.dispatchTouchEvent(Activity.java:2125)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1700)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1822)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:5068)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)


Stack Trace #2

java.lang.OutOfMemoryError: bitmap size exceeds VM budget
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:468)
at …
Run Code Online (Sandbox Code Playgroud)

java android overlay out-of-memory android-mapview

0
推荐指数
1
解决办法
3163
查看次数