我在哪里可以更改Android自定义AOSP构建中的默认设备属性?
例如:
应在构建中定义这些设置,以便在加载构建后它们已处于正确的状态.
是否有所有设置的集中文件/文件夹?或者是一个Settings自行收集所有Android平台模块设置的应用程序?
我们有一个非常奇怪的崩溃,它指向系统类.它出现在应用程序启动时.
致命异常:java.lang.RuntimeException:无法启动活动ComponentInfo {com.myapp.android/com.myapp.android.main.BaseMainActivity}:java.lang.RuntimeException:无法创建应用程序com.myapp.android.main. MyApp的:在显示java.lang.NullPointerException android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2429)在android.app.ActivityThread.access $ 800(ActivityThread.java :151)在Android.app.Loper.loop(Looper.java:193)的android.app.Handler.dispatchMessage(Handler.java:110)上的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1342)在android.app.ActivityThread.main(ActivityThread.java:5333)的java.lang.reflect.Method.invokeNative(Method.java),位于com的java.lang.reflect.Method.invoke(Method.java:515). android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:828)位于dalvik.system.NativeStart.mai的com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)n(NativeStart.java)由java.lang.RuntimeException引起:无法在android.app.LoadedApk.makeApplication(LoadedApk.java:529)上创建应用程序com.myapp.android.main.MyApp:java.lang.NullPointerException .app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2429)在android.app.ActivityThread.access $ 800(ActivityThread.java:151)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1342)位于android.app.AtoT.Thread.main的android.os.Handler.dispatchMessage(Handler.java:110)android.os.Looper.loop(Looper.java:193) ActivityThread.java:5333)at java.lang.reflect.Method.invokeNative(Method.java)at java.lang.reflect.Method.invoke(Method.java:515)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller位于dalvik.system.NativeStart.main(NativeStart.java)的com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)中的.run(ZygoteInit.java:828)由java.lang.NullPointerEx引起 知识在android.content.Context.getString(Context.java:343)的com.myapp.android.api.singletons.AppTrackingInstance.initAdjust(AppTrackingInstance.java:114)com.myapp.android.api.singletons.AppTrackingInstance. (AppTrackingInstance.java:92)在com.myapp.android.injection.modules.ApplicationScopeModule.provideAppTrackingInstance(ApplicationScopeModule.java:326)在com.myapp.android.injection.modules.ApplicationScopeModule $$ ModuleAdapter $ ProvideAppTrackingInstanceProvidesAdapter.get(ApplicationScopeModule $ $ ModuleAdapter.java:1618)在com.myapp.android.injection.modules.ApplicationScopeModule $$ ModuleAdapter $ ProvideAppTrackingInstanceProvidesAdapter.get(ApplicationScopeModule $$ ModuleAdapter.java:1552)在dagger.internal.Linker $ SingletonBinding.get(Linker.java :364)com.myapp.android.main.MyApp $$ InjectAdapter.injectMembers(MyApp $$ InjectAdapter.java:70)at com.myapp.android.main.MyApp $$ InjectAdapter.injectMembers(MyApp $$ InjectAdapter.java :23)在dagger.ObjectGraph $ DaggerObjectGraph.in ject(ObjectGraph.java:281)位于com.myapp.android.main.MyApp $ 1.run(MyApp.java:57),位于android的com.myapp.android.main.MyApp.onCreate(MyApp.java:51). app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)在android.app.LoadedApk.makeApplication(LoadedApk.java:526)在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)在android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2429)在Android.app.Handler.dispatchMessage(Handler)上的android.app.ActivityThread.access $ 800(ActivityThread.java:151)android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1342) .java:110)在android.os.Looper.loop(Looper.java:193)的android.app.ActivityThread.main(ActivityThread.java:5333)at java.lang.reflect.Method.invokeNative(Method.java)在java.lang.reflect.Method.invoke(Method.java:515)在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:828)在com.android.internal.os.ZygoteInit.main (ZygoteInit.java:644)在dalvik.syste m.NativeStart.main(NativeStart.java)
我们使用Dagger 1,我们的应用程序是multidex-ed.
匕首模块:
@Module(
library = true, …Run Code Online (Sandbox Code Playgroud) 我正在建设AOSP 4.2 Jelly Bean.当我构建默认full-eng配置并在模拟器上运行时,一切正常.
我需要构建自定义设备并运行它(打开emulator- 用于测试它是否真的有效,并且在真实设备上).当我基于full_base.mk文件创建自定义设备并运行它时emulator- emulator只需在带有ANDROID文本的第一个屏幕上挂起,并且根本不会加载.我system.img, userdata.img, ramdisk.img建立了out目录后.这就是构建自定义AOSP并在设备上运行所需的全部内容吗?我可以在模拟器上运行构建,还是只在真实设备上运行?
我是否应该为实际设备构建AOSP:内核,设备驱动程序等?
自定义设备文件夹文件(device/my_company/my_product):
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
ifneq ($(filter my_product,$(TARGET_DEVICE)),)
include $(call all-makefiles-under,$(LOCAL_PATH))
endif
Run Code Online (Sandbox Code Playgroud)
AndroidProducts.mk
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/full_myproduct.mk
Run Code Online (Sandbox Code Playgroud)
BoardConfig.mk
TARGET_NO_BOOTLOADER := true
TARGET_NO_KERNEL := true
TARGET_ARCH := arm
TARGET_ARCH_VARIANT := armv7-a
TARGET_CPU_VARIANT := generic
TARGET_CPU_ABI := armeabi-v7a
TARGET_CPU_ABI2 := armeabi
HAVE_HTC_AUDIO_DRIVER := true
BOARD_USES_GENERIC_AUDIO := true
# no hardware camera
USE_CAMERA_STUB := true
# Enable …Run Code Online (Sandbox Code Playgroud) 我正在使用PhotoView库来实现缩放Android ImageView.缩放工作正常.
我正在使用low-qualityin 设置图像,ImageView然后开始下载hight-quality将替换low-quality图像的新图像.
如果用户放大low-quality图像 - high-quality图像将替换现有图像并缩小缩放级别:(
如何在加载high-quality图像后保存缩放级别?
我一直试图让图像Matrix从PhotoViewAttacher在low-quality和它设置为high-quality image,但它不工作-图像缩放级别和范围是不一样的,因为他们之前.该high-quality图像取代了low-quality图像ImageView.
Matrix matrix;
imageView.setImageBitmap(imageBitmap);
...
PhotoViewAttacher mAttacher = new PhotoViewAttacher(imageView);
// save the matrix before any modifications
matrix = mAttacher.getDisplayMatrix();
mAttacher.setOnMatrixChangeListener(new OnMatrixChangedListener() {
@Override
public void onMatrixChanged(RectF rect) {
// update the matrix
matrix = mAttacher.getDisplayMatrix();
}
});
imageProvider.load(getActivity(), imageView, …Run Code Online (Sandbox Code Playgroud) 背景
Android应用程序有2个版本:1个用于移动设备,1个用于Android TV.
Android TV APK版本代码应远远高于移动设备Android APK版本代码.
APK for mobile devices有版本代码,如10,11,12等
.APK为Android TV设备有版本代码,如10001,10010等.
由于这两个APK都是通过Google Play中的一个应用配置发布的,因此我们有"共享"alpha/beta曲目.当我们发布时,我们只保留多个APK(1个用于电视和1个移动设备).
我想使用Google Play API使用Gradle插件或Jenkins插件将APK上传到Google Play alpha/beta曲目.
我选择哪种方法并不重要,当我尝试上传移动设备的APK时,我收到错误.
上传失败: - 如果符合以下条件,则此应用版本为10002的设备将降级为版本54:[(API_LEVEL在范围19-0和RELEASE_TRACK中包含[[BETA]]和SCREENS中的任何一个,其中包含任何一个[[small,normal,large,xlarge]]和NATIVE_PLATFORM包含[[x86_64,x86,armeabi-v7a,arm64-v8a]]和GL_ES_VERSION中的任何一个,范围为131072-0 AND FEATURES包含所有[android.hardware] .screen.portrait,android.software.leanback,android.hardware.faketouch])].
此错误明确表示我无法上传带有54版本代码(移动设备)的APK,因为带有10002版本代码(Android TV)的APK已经在Google Play中.
但 Google Play允许我手动完成此操作(通过Google Play控制台用户界面) - 使用APK(54版本代码)创建测试版并保留现有的APK测试版(10002版本代码).
题
是否可以通过Google Play API上传适用于移动设备和Android电视设备的APK?
有没有办法上传APK移动设备到alpha/beta轨道并自动保留APK从alpha/beta轨道上传之前有?
我讨厌(Thread.sleep(millis)在测试中使用"睡眠者" ,但没有睡眠者,一些测试失败了.
我有一个ListView在我的Android应用程序中,我想点击列表中的第一项(在我们的案例中是沙特阿拉伯).
public AndroidDriver androidDriver;
...
androidDriver = new AndroidDriver(serverAddress, capabilities);
androidDriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driverWait = new WebDriverWait(androidDriver, 30);
// at this moment everything is initialized and working properly,
// Appium server is up and running
driverWait.until(ExpectedConditions.visibilityOfElementLocated(By.id("com.###.debug:id/countries_list_view")));
WebElement countriesList = driver.findElement(By.id("com.###.debug:id/countries_list_view"));
List<WebElement> countries = countriesList.findElements(By.id("com.###.debug:id/list_item_container"));
WebElement country = countries.get(0);
// country isn't null, and it corresponds to a real ListView row
driverWait.until(ExpectedConditions.elementToBeClickable(country));
Thread.sleep(1000); // <---- country isn't clicked without this
country.click();
Run Code Online (Sandbox Code Playgroud)
Calabash/Cucumber测试中存在同样的问题(需要显式等待).
我已经尝试了不同的方法来等待应该点击的元素 …
在哪里可以找到Bitrise带有实际值的默认环境变量的完整列表?
我可以在Select variable对话框中看到变量列表:
但无法检查其值。我不想在命令行中使用echo并打印所有值并检查它们的值。很高兴在bitrise.io文档中提供此信息,该信息目前尚不存在。
我bitrise*在github中找到了一些存储库,并且在steps我的源代码中,我能够检查一些环境变量的默认值。这仍然不是理想的结果。
什么是提前宽度?
该术语出现在android类中Paint,特别是函数getTextWidths()。文档指出“返回字符串中字符的超前宽度”。
什么是“前进宽度”?
如何修改 AOSP 中的启动顺序:在启动 Launcher2 应用程序之前,我将添加自定义应用程序(注册应用程序 - 登录名和密码,将发送到服务器以进行授权)。我怎样才能做到这一点?我知道 ActivityManager 管理要启动的 Activity,但我不知道应该在哪里启动应用程序。我需要在 android 系统启动完成后立即启动我的应用程序。
我想用一种ListView里面的东西ScrollView.该列表具有可变长度,始终可以添加/删除项目.是否有一种简单的方法来修改默认值Android ListView,我是否必须创建自定义ListView?
似乎GoogleMap并没有提供任何API从乡村获取所有街道的信息(仅从矩形边界框获得)。
也许可以从地图上获取整个街道的数据库,但我不知道如何。任何地图都是合适的。
有什么建议吗?