我试图检测我的应用程序何时使用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) 自从升级我当前的项目以使用Eclipse中的新R14工具以来,我现在无法调试我的库项目中存在的任何代码.
当我在我的库项目代码中找到一个断点时,而不是Eclipse打开原始源文件,它打开了JAR中包含的源文件的只读副本,并显示消息"Source not found".
我一直在寻找解决方案,但还没有遇到任何问题.有没有人有任何建议?无法调试是一件非常痛苦的事.
编辑
这个问题又回来了,我再也无法调试了.我没有改变任何项目设置或任何东西.很沮丧.
我在应用程序中实现TimePicker时遇到一些问题,允许用户在插入数据库记录之前更改数据库记录的时间.
问题是当按下AM/PM按钮时,不会调用onTimeChanged(View,int,int)方法.每当我更改TimePicker的小时或分钟值时,都会调用onTimeChanged().
场景:
我错误地认为应该能够点击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) 我试图把一个ImageView在CollapsingToolbarLayout其中占据了整个屏幕上的负载,当你滚动内容时,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
我刚刚为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种口味做这一切是不利的.
我在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"
谁能告诉我哪里出错了?
我很难解析/格式化从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.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) 我正在试图弄清楚如何将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 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) 我从用户那里得到了很多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) android ×11
java ×4
adt ×1
android-collapsingtoolbarlayout ×1
apk ×1
eclipse ×1
google-play ×1
gson ×1
jenkins ×1
overlay ×1
parallax ×1
sqlite ×1
timepicker ×1
uri ×1
verifyerror ×1