小编Vea*_*rji的帖子

如何在AOSP构建中设置默认属性?

我在哪里可以更改Android自定义AOSP构建中的默认设备属性?

例如:

  • GPS - ON;
  • 同步 - 开;
  • 亮度 - 自动;
  • 蓝牙 - 关闭;
  • WiFi - 关闭;
  • 声音 - 默认声音;
  • 响铃振动时振动;

应在构建中定义这些设置,以便在加载构建后它们已处于正确的状态.

是否有所有设置的集中文件/文件夹?或者是一个Settings自行收集所有Android平台模块设置的应用程序?

android android-source

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

应用程序在启动时由android.content.Context.getString中的NPE导致崩溃

我们有一个非常奇怪的崩溃,它指向系统类.它出现在应用程序启动时.

致命异常: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)

crash android dagger android-multidex

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

AOSP建立在自定义设备上

我正在建设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)

android android-source

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

PhotoViewAttacher清除imageView边界和缩放级别

我正在使用PhotoView库来实现缩放Android ImageView.缩放工作正常.

我正在使用low-qualityin 设置图像,ImageView然后开始下载hight-quality将替换low-quality图像的新图像.

如果用户放大low-quality图像 - high-quality图像将替换现有图像并缩小缩放级别:(

如何在加载high-quality图像后保存缩放级别?

我一直试图让图像MatrixPhotoViewAttacherlow-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 zoom imageview

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

如何通过Google Play API将Android和Android TV APK上传到Google Play

背景

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轨道上传之前有?

android apk google-api-java-client google-api-client

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

Appium + Selenium Android:没有Thread.sleep时没有点击ListView项目

我讨厌(Thread.sleep(millis)在测试中使用"睡眠者" ,但没有睡眠者,一些测试失败了.

我有一个ListView在我的Android应用程序中,我想点击列表中的第一项(在我们的案例中是沙特阿拉伯).

国家ListView

 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测试中存在同样的问题(需要显式等待).

我已经尝试了不同的方法来等待应该点击的元素 …

selenium android automated-tests selenium-webdriver appium

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

Bitrise默认环境变量

在哪里可以找到Bitrise带有实际值的默认环境变量的完整列表?

我可以在Select variable对话框中看到变量列表:

选择可变图像

但无法检查其值。我不想在命令行中使用echo并打印所有值并检查它们的值。很高兴在bitrise.io文档中提供此信息,该信息目前尚不存在。

bitrise*在github中找到了一些存储库,并且在steps我的源代码中,我能够检查一些环境变量的默认值。这仍然不是理想的结果。

continuous-integration android ios bitrise

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

Paint.getTextWidths。什么是提前宽度?

什么是提前宽度?

该术语出现在android类中Paint,特别是函数getTextWidths()。文档指出“返回字符串中字符的超前宽度”

什么是“前进宽度”?

android text measurement

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

如何在 AOSP 中的启动器之前添加我的应用程序

如何修改 AOSP 中的启动顺序:在启动 Launcher2 应用程序之前,我将添加自定义应用程序(注册应用程序 - 登录名和密码,将发送到服务器以进行授权)。我怎样才能做到这一点?我知道 ActivityManager 管理要启动的 Activity,但我不知道应该在哪里启动应用程序。我需要在 android 系统启动完成后立即启动我的应用程序。

android android-source

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

没有Scrollbar的ListView可以在ScrollView中使用

我想用一种ListView里面的东西ScrollView.该列表具有可变长度,始终可以添加/删除项目.是否有一种简单的方法来修改默认值Android ListView,我是否必须创建自定义ListView

android listview scroll

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

是否可以从地图上获得一个国家的所有街道?

似乎GoogleMap并没有提供任何API从乡村获取所有街道的信息(仅从矩形边界框获得)。

也许可以从地图上获取整个街道的数据库,但我不知道如何。任何地图都是合适的。

有什么建议吗?

google-maps map openstreetmap yandex-maps

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