我有一个本机二进制文件,我想将其包含在Android的源代码中,因此当我编译它时,我的二进制文件将包含在/ system/bin中.
我已经将我的二进制文件复制到文件夹/ prebuilt/android-arm/my-binary中了,我创建了一个新的Android.mk,其中包含以下内容:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := my-binary
LOCAL_MODULE := my-binary
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_MODULE_TAGS := optional
include $(BUILD_PREBUILT)
Run Code Online (Sandbox Code Playgroud)
但是当我运行make时,我在日志中得到的唯一引用如下:
target Prebuilt: my-binary (out/target/product/generic/obj/EXECUTABLES/my-binary_intermediates/my-binary)
Run Code Online (Sandbox Code Playgroud)
并且二进制文件根本没有安装到system.img中.在Android上安装预置二进制文件时有一个几乎完全相同的问题:"找不到",但提问者已经知道了基本程序,并且根本没有解释.如果我运行make my-binary,我会得到我发布的同一行.
我也试过运行make out/target/product/generic/system.img my-binary但它也不起作用.我的二进制文件显示在out子文件夹中,但它不会包含在system.imng中
我错过了什么吗?有没有办法让只运行make -j#我的二进制文件将包含在/ system/bin中?
我想通过从另一个Android应用程序启动一个活动,在浏览器应用程序中添加一些功能.package does not exist在我制作主项目时它给了我.请注意,我看到AndroidLib已成功构建到out/target/product/generic/data/app/AndroidLib.apk
这里有两个android.mk文件:AndroidLib(一个普通的Android应用程序)
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_STATIC_JAVA_LIBRARIES := \
google-ps \
android-support-v4 \
LOCAL_SRC_FILES := \
$(call all-java-files-under, src) \
LOCAL_MODULE := AndroidLib
LOCAL_PACKAGE_NAME := AndroidLib
LOCAL_MODULE_TAGS := tests
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := google-ps:libs/google-play-services.jar
include $(BUILD_PACKAGE)
# additionally, build tests in sub-folders in a separate .apk
include $(call all-makefiles-under,$(LOCAL_PATH))
Run Code Online (Sandbox Code Playgroud)
浏览器应用
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_STATIC_JAVA_LIBRARIES := \
android-common \
guava \
android-support-v13 \
android-support-v4 \
LOCAL_SRC_FILES := \
$(call all-java-files-under, src) …Run Code Online (Sandbox Code Playgroud) android android-ndk android-build android-source android-framework
我正在尝试Android构建系统几天.我可以按照此处的描述成功下载和构建系统.我建立了主分支.
emulator我没有单独运行命令,而是使用了带有此处给出的参数的命令.模拟器窗口启动并显示"android"徽标,但它停留在那里.我离开它差不多1小时,但看起来像进入某种引导循环.当检查logcat时,我可以找到一些"连接失败"的日志,如下所示.
I/PackageManager( 283): /system/app/Launcher2.apk changed; collecting certs
D/dalvikvm( 283): GC_CONCURRENT freed 460K, 36% free 5704K/8808K, paused 15ms+24ms, total 170ms
I/Installer( 283): connecting...
I/Installer( 283): disconnecting...
E/Installer( 283): connection failed
I/PackageManager( 283): /system/app/LiveWallpapers.apk changed; collecting certs
D/dalvikvm( 283): GC_CONCURRENT freed 1182K, 43% free 5049K/8808K, paused 6ms+9ms, total 125ms
I/Installer( 283): connecting...
I/Installer( 283): disconnecting...
E/Installer( 283): connection failed
I/PackageManager( 283): /system/app/LiveWallpapersPicker.apk changed; collecting certs
I/Installer( 283): connecting...
I/Installer( 283): disconnecting...
E/Installer( 283): connection failed
I/PackageManager( …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,当它在API 18或19上运行时,它的行为有所不同.这不是问题,我知道它为什么会发生.
但是,我想写一个代码来处理这两个版本.
有没有办法在运行时获取我的应用程序构建的API?具体来说,如果我用这些API构建我的应用程序,我想得到18或19.
编辑
这似乎是一个重复的问题.我认为BUILD_VERSION是另外的东西,因为,当我将两个版本编译为API 18和19,并打印版本时,我收到18.它看起来像另一个问题(虽然我指定了API 19,它是根据18编译的).
我发现问题出在仿真器配置中.
我需要能够使用Jenkins工作构建我的apk的发布版本.
从阅读以下SO问题
我知道我可以通过两种方式之一来做到这一点.要么让用户在cmd提示符下输入密码,要么将我的密码详细信息存储在未提交给git的纯文本文件中,并存放在我的本地计算机上.
但是,在jenkins上运行构建作业时,这些都不会起作用.1)我无法获得用户输入,因为这可能是在半夜运行(即使用户在他们的机器上,我甚至不知道如何从cmd行获取用户输入)2)任何人都可以获得对该构建框的访问权限,可以通过cmd行或在该jenkins服务器上运行的另一个build.gradle作业捕获该文件的内容.
有谁知道无论如何我可以隐藏我的密码,但Jenkins的工作可以访问它?
谢谢
我需要为Play商店生成已签名的APK.(使用Android Studio)如果我没有proguard(build.gradle中的minifyEnabled false)那么一切正常!
如果我使用默认参数激活它:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Run Code Online (Sandbox Code Playgroud)
我收到这些警告
:app:proguardRelease
Warning: com.android.volley.error.VolleyErrorHelper$1: can't find superclass or interface com.google.gson.reflect.TypeToken
Warning: com.android.volley.error.VolleyErrorHelper: can't find referenced class com.google.gson.Gson
Warning: com.android.volley.error.VolleyErrorHelper: can't find referenced class com.google.gson.Gson
Warning: com.android.volley.error.VolleyErrorHelper: can't find referenced method 'java.lang.reflect.Type getType()' in program class com.android.volley.error.VolleyErrorHelper$1
Warning: com.android.volley.error.VolleyErrorHelper: can't find referenced class com.google.gson.Gson
Warning: com.android.volley.error.VolleyErrorHelper$1: can't find referenced class com.google.gson.reflect.TypeToken
Warning: com.android.volley.error.VolleyErrorHelper$1: can't find referenced class com.google.gson.reflect.TypeToken
Warning: com.android.volley.error.VolleyErrorHelper$1: can't find …Run Code Online (Sandbox Code Playgroud) 有没有办法动态更改生成的文件 .BuildConfig 的包?
我想使用build.gradle文件来使用applicationId和更改不同版本之间的包名称。
谢谢
总是当我添加一个新的 C++ 文件时,Android Studio 会通知我该文件不是我项目的一部分,我应该将新文件包含在适当的构建文件(build.gradle、CMakeLists.txt、Android.mk 等)中。 )。
我总是手动点击“Refresh Linked C++-Projects”来让 Android Studio 在项目中包含我的新 C++-File。
我正在使用 Cmake 并通过file(GLOB CPP_FILES "src/main/cpp/*.cpp")CMakeLists.txt 中的行将我的 C++ 文件 glob 化。
如果添加了新的 Cpp-File,如何让 Android Studio 自动刷新喜欢的 C++-Project?
提前致谢!
由于指通过从代码获取androidManifest的"可调试"的价值?,有两种选项可以检查构建是否可调试:
1.)BuildConfig.DEBUG标志
if (BuildConfig.DEBUG)`
Run Code Online (Sandbox Code Playgroud)
2.)ApplicationInfo.FLAG_DEBUGGABLE
if (0 != (getContext().getApplicationInfo().flags &
ApplicationInfo.FLAG_DEBUGGABLE))
Run Code Online (Sandbox Code Playgroud)
它们是两个相同的,还是不同的?什么时候用?
java android android-build android-build-type android-flavors
假设我有一个具有三种构建类型的Android应用:
buildTypes {
release {
....
}
optRelease {
....
}
debug {
....
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个依赖模块:
dependencies {
implementation project(':myDependency')
}
Run Code Online (Sandbox Code Playgroud)
假设此依赖项只有两种构建类型(比如debug和release),我想完全控制我的应用程序的哪种构建类型使用哪种依赖项的构建类型。例如,我希望我的应用程序optRelease使用库的release,而应用程序release使用库的debug。
在Android Studio 3.0之前,这曾经是可能的,但是新的构建变体系统似乎不再允许这样做了。
如何明确说明要使用的构建类型?假设我无法控制依赖项,并且无法修改其gradle配置。
android ×10
android-build ×10
android-ndk ×2
apk ×2
build.gradle ×1
cmake ×1
gradle ×1
java ×1
jenkins ×1