我对我的 Next.js 项目有疑问。
我已将我的项目配置为通过独立模式构建以进行部署
experimental: {
outputStandalone: true
}
Run Code Online (Sandbox Code Playgroud)
使用它,它会生成一个与server.js预期类似的独立文件夹。
主要问题是我在源中使用了一个环境变量,称为NEXT_PUBLIC_API_BASE_URL
当我以开发模式(使用)启动我的项目时next serve,它工作正常。
但是当我启动独立生成的文件(使用node server.js)时它不起作用。
看来该文件是在“服务器端”加载的,当我console.log在它的值中时,.next/standalone/server/pages/_app.js它在节点控制台中显示了正确的值。
但看起来接下来是使用下面的文件.next/static/chunks/pages/和另一个似乎无法访问 process.env (在浏览器端)的 app.js 。
我认为在我的环境变量中添加前缀NEXT_PUBLIC是为了以这种方式工作,但事实似乎并非如此。
知道它在那里如何运作吗?
我知道这个问题已被多次询问过,但我几乎尝试了所有解决方案,对我来说没有任何作用.所以我想我也不明白.
这是重点,我有一个主屏幕小部件,一个列表,并且像往常一样,我希望每个项目在单击时打开活动.
我看到了很多关于吐司和广播的答案,但我希望它能开启一项活动.
问题是,点击不起作用.
这就是我所做的:
该 widget_info.xml
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minHeight="50dp"
android:minWidth="300dp"
android:previewImage="@mipmap/ic_launcher"
android:resizeMode="horizontal|vertical" />
Run Code Online (Sandbox Code Playgroud)
该 Provider
class StickyWidgetProvider : AppWidgetProvider() {
override fun onReceive(context: Context, intent: Intent) {
super.onReceive(context, intent)
if (ACTION_APPWIDGET_UPDATE == intent.action) {
updateWidget(context)
}
}
override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {
for (i in 0 until appWidgetIds.size) {
val appWidgetId = appWidgetIds[i]
val rv = RemoteViews(context.packageName, R.layout.widget_container)
rv.setRemoteAdapter(R.id.widget_list, Intent(context, MyWidgetService::class.java))
val activityIntent = Intent(context, MainActivity::class.java)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK)
val pendingIntent = …Run Code Online (Sandbox Code Playgroud) android listview android-widget kotlin android-pendingintent
我有一个Android项目(使用Android Studio和Gradle)和一个构建此项目的Jenkins CI服务器.
我要做的是生成一个完全未签名的证书.
事实上,当服务器构建的应用程序,它会产生一个-unsigned.apk但似乎这个APK 是由签署developper证书.
事实上,我通过下载apk并运行以下命令检查了这一点(阅读后如何验证Android apk是否与发布证书签名?)
jarsigner -verify -verbose -certs app-unsigned.apk | grep Android
Run Code Online (Sandbox Code Playgroud)
所以输出就像
X.509, CN=Android Debug, O=Android, C=US
Run Code Online (Sandbox Code Playgroud)
(有很多行)
为了它的价值,我构建了运行gradle任务的应用程序:
clean assemble lint
Run Code Online (Sandbox Code Playgroud)
之后,我通过运行来压缩所有的apks
zipalign -f -v 4 *.apk
Run Code Online (Sandbox Code Playgroud)
我的build.gradle不包含任何签名选项
android {
compileSdkVersion 19
buildToolsVersion '19.0.1'
defaultConfig {
minSdkVersion 10
targetSdkVersion 19
}
buildTypes {
debug {
// proguard
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
// ZipAlign
zipAlign false
}
release {
// …Run Code Online (Sandbox Code Playgroud)